通过sendmail发送的电子邮件通过短信发送时显示错误的“发件人”地址

时间:2013-10-22 17:28:09

标签: python email sms sendmail

我有一个运行python脚本的cronjob定期发送一封包含状态更新的电子邮件给我。在周末,我更喜欢通过文本工作,所以我发送到myphonenumber@vtext.com。这种方法很好,除了“来自”地址到手机时不正确。它在发送到常规电子邮件地址时正确显示。出于某种原因,当它通过文本时,它将'from'地址显示为“myusername@servername.wndowsdomain.local”。这可能只是一个verizon短信事情,但如果可能的话我想弄清楚如何修复它,因为我希望为这个工具添加一些回复功能。

脚本所在的机器正在运行Ubuntu 12.04。

这是我发送电子邮件的简单python函数:

def sendMail(to,text):
    msg = MIMEMultipart('alternative')
    msg['Subject'] = "Weekend Report"
    msg['From'] = 'servername@mydomain.com'
    msg['To'] = to
    msg.attach(MIMEText(text,'plain'))
    p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
    p.communicate(msg.as_string())

我会更好地使用像smtplib和gmail帐户这样的东西吗?

1 个答案:

答案 0 :(得分:1)

Sendmail:设置信封发件人

您可以尝试设置“信封发件人”地址 (SMTP会话中使用的发件人地址)。

p=Popen(["/usr/sbin/sendmail","-t","-i","-fservername@mydomain.com"],stdin=PIPE)

评论:我添加了与设置信封发件人无关的-i命令行选项。