我正在尝试通过构建对我有用的程序/脚本来自学如何编程。我正在尝试重新编写我在网上找到的脚本,以使用 python 脚本通过 gmail 发送电子邮件(Source http://kutuma.blogspot.com/2007/08/sending-emails-via-gmail-with-python.html).
此示例有一部分用于附加文件的代码,我不想要/不需要。我已经调整了代码,这样我就不必附加任何文件,但是当我这样做时,我丢失了电子邮件的正文。有关如何修改代码以保持电子邮件正文完整的任何帮助/提示吗?
感谢您的帮助。
您使用的示例代码创建多部分 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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)