我正在使用以下方法使用 SMTP 从 Python 发送邮件。这是正确的使用方法还是我遗漏了一些陷阱?
from smtplib import SMTP
import datetime
debuglevel = 0
smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER', 26)
smtp.login('USERNAME@DOMAIN', 'PASSWORD')
from_addr = "John Doe <john@doe.net>"
to_addr = "foo@bar.com"
subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )
message_text = "Hello\nThis is a mail from your server\n\nBye\n"
msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s"
% ( from_addr, to_addr, subj, date, message_text )
smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()
原文由 Eli Bendersky 发布,翻译遵循 CC BY-SA 4.0 许可协议
我使用的脚本非常相似;我在这里发布它作为如何使用 email.* 模块生成 MIME 消息的示例;因此可以轻松修改此脚本以附加图片等。
我依靠我的 ISP 添加日期时间标头。
我的 ISP 要求我使用安全的 smtp 连接来发送邮件,我依赖 smtplib 模块(可在 http://www1.cs.columbia.edu/~db2501/ssmtplib.py 下载)
在您的脚本中,用于在 SMTP 服务器上进行身份验证的用户名和密码(下面给出虚拟值)在源代码中以纯文本形式显示。这是一个安全漏洞;但最好的选择取决于您需要(想要?)保护这些。
========================================