每当我尝试使用 时sendmail(sender,reciever,message),它都会成功发送电子邮件,并且主题行很好,但电子邮件的“正文”总是丢失。
这是我的完整代码:
s = smtplib.SMTP("smtp.gmail.com",587)
s.ehlo()
s.starttls()
s.login(sender,password)
message = """From %s
Subject: %s
This is the body part""" % (sender,subject)
s.sendmail(sender,reciever,message)
s.quit()
Run Code Online (Sandbox Code Playgroud)
为什么尸体没有被接收?
您在主题和正文之间缺少一个额外的空行,如官方文档示例(释义)中所述:
msg = "From: %s\r\nTo: %s\r\n\r\nBody text"
Run Code Online (Sandbox Code Playgroud)
无论如何,我会遵循文档中的建议并使用电子邮件包中的 Message 对象。这样您就不必担心正确格式化字符串,只需执行以下操作即可:
msg = EmailMessage()
msg['Subject'] = "Subject"
msg['From'] = Address("Name", "mailbox", "domain")
msg['To'] = (Address("Name Too", "test", "example.com"),
Address("And so on", "so", "forth"))
msg.set_content("The body of the e-mail")
with smtplib.SMTP("smtp.gmail.com", 587) as s:
s.send_message(msg)
Run Code Online (Sandbox Code Playgroud)
更多内容请参见官方文档的示例。
| 归档时间: |
|
| 查看次数: |
5418 次 |
| 最近记录: |