我正在尝试通过构建对我有用的程序/ scrips来自学如何编程.我正在尝试重新调整我在网上发现的脚本,使用python脚本通过gmail发送电子邮件(Source).
这个例子有一部分代码来附加文件,我不想要/不需要.我已经调整了代码,以便我不必附加任何文件,但是当我这样做时,我丢失了电子邮件的正文.有关如何修改代码以保持电子邮件正文完整的任何帮助/提示?
感谢帮助.
您正在使用的示例代码创建了多部分MIME消息.一切都是附件,包括信息正文.如果您只想发送普通的单部分纯文本或HTML消息,则不需要任何MIME内容.它只会增加复杂性.在示例的sendmail()调用中看到msg.as_string()中的那个位?好吧,这只是将您创建的MIME对象转换为文本.如果您要处理文本,那么很容易自己指定文本.
下面的函数类似于我用于在我编写的脚本中邮寄日志文件的代码.它需要一个纯文本正文并将其转换为预格式化的HTML(以便在Outlook中更好地工作).如果要保留纯文本,只需取出添加HTML标记的行,并将Content-Type标题更改为"text/plain".
import smtplib
def sendmail(sender, recipient, subject, body, server="localhost"):
"Sends an e-mail to the specified recipient."
body = ("<html><head></head><body><pre>%s</pre></body></html>" %
body.replace("&", "&").replace("<", "<"))
headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
session = smtplib.SMTP(server)
session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()
Run Code Online (Sandbox Code Playgroud)