使用Python发送电子邮件时消息中的MIME标头

使用Python发送电子邮件时消息中的MIME标头,python,mime,email,Python,Mime,Email,所以我尝试用这个模板发送一封电子邮件,并使用一个日志文件作为正文,电子邮件发送得很好。但是,它在消息体中有一个非常难看的标题(如下所示) 是否有任何方法使邮件不包含上面的标题?谢谢大家! #!/usr/bin/python import smtplib import time import datetime from email.mime.text import MIMEText today = datetime.date.today() textfile = "/home/user/Publi

所以我尝试用这个模板发送一封电子邮件,并使用一个日志文件作为正文,电子邮件发送得很好。但是,它在消息体中有一个非常难看的标题(如下所示)

是否有任何方法使邮件不包含上面的标题?谢谢大家!

#!/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()

使用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()
请注意,在添加为标头之前,必须将“收件人”列表转换为字符串,因为“收件人/发件人”标头中不允许使用方括号。
希望这能有所帮助。

好的,让我开心。为什么不能包含这些标题?我想你是在问为什么我不希望它们出现在那里?因为它们丑陋又烦人,没有人需要知道这些信息,这里有两个问题。第一行是乱七八糟的,不是标题,不应该包含在输出中。但是,其他三行是有效的,应该包括在输出中,假设它实际上有任何MIME内容。谢谢文本。as_string有效。TEXT.as_string应该是TEXT.as_string()
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()