我有一个运行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帐户这样的东西吗?
答案 0 :(得分:1)
您可以尝试设置“信封发件人”地址 (SMTP会话中使用的发件人地址)。
p=Popen(["/usr/sbin/sendmail","-t","-i","-fservername@mydomain.com"],stdin=PIPE)
评论:我添加了与设置信封发件人无关的-i
命令行选项。