因此,我尝试使用此模板发送电子邮件并使用日志文件作为正文,电子邮件将被正常发送。但是,它在消息正文中有这个非常难看的标题(如下所示)
From nobody Thu Mar 17 14:13:14 2011
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
无论如何都要这样做,所以消息不包括上面的标题?谢谢!
#!/usr/bin/python
import smtplib
import time
import datetime
from email.mime.text import MIMEText
today = datetime.date.today()
textfile = "/home/user/Public/stereo-restart-log"
FROM = "my-username"
TO = ["recipients"]
SUBJECT = "Stereo log: %s" % today
fp = open(textfile, 'rb')
TEXT = MIMEText(fp.read())
fp.close()
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, TO, SUBJECT, TEXT)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('my-username','mypass')
server.sendmail(FROM, TO, message)
server.close()
答案 0 :(得分:1)
使用MIMEText,您已经创建了消息对象。您只需要为其添加正确的标题:
FROM = "my-username"
TO = ["recipients"]
SUBJECT = "Stereo log: %s" % today
fp = open(textfile, 'rb')
TEXT = MIMEText(fp.read())
fp.close()
TEXT['From'] = FROM
TEXT['To'] = ",".join(TO)
TEXT['Subject'] = SUBJECT
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('my-username','mypass')
server.sendmail(FROM, TO, TEXT.as_string)
server.close()
请注意,在添加为标题之前,您必须将TO列表转换为字符串,因为To / From标题中不允许使用方括号。 希望这会有所帮助。