如何使用 Python 的“MIME 处理包”发送电子邮件?

Posted

技术标签:

【中文标题】如何使用 Python 的“MIME 处理包”发送电子邮件?【英文标题】:How do I send an email using Python's "MIME handling package"? 【发布时间】:2021-12-02 06:41:18 【问题描述】:

这里有关于如何发送电子邮件的文档:https://docs.python.org/3/library/email.examples.html

我尝试运行的完整代码是...

# Import smtplib for the actual sending function
import smtplib

# Import the email modules we'll need
from email.message import EmailMessage

# Open the plain text file whose name is in textfile for reading.

# Create a text/plain message
msg = EmailMessage("HI")


# me == the sender's email address
# you == the recipient's email address
msg['Subject'] = "SubjectLine"
msg['From'] = aaaaa@gmail.com
msg['To'] = aaaaa@yahoo.com

# Send the message via our own SMTP server.
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()

第 16 行代码出现错误

msg['Subject'] = "SubjectLine"

错误是:'str' object has no attribute 'header_max_count'

【问题讨论】:

"第 16 行代码出现错误" ...您确定吗?此行与政策完全无关,符合官方文档的指导。 您能解释一下您认为在EmailMessage("HI") 行中传递给EmailMessage 的论点实际上是做什么的...?您是否阅读了the documentation for EmailMessage 以了解您应该 作为参数传递的内容?您能否分享一下您理解"HI" 在这种情况下是该函数的有效参数的文档? 感谢您的帮助。我将删除这篇文章作为修改我的问题。 【参考方案1】:

您似乎对如何实例化EmailMessage 的实例存在误解,并且不清楚您为什么将字符串"HI" 作为参数传递。 The documentation 明确提到此参数旨在获取策略信息,其中将包括它似乎期望的 header_max_count 属性。

在您的代码中删除这种不必要的 "HI" 用法:

msg = EmailMessage()

【讨论】:

以上是关于如何使用 Python 的“MIME 处理包”发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

python:如何使用TO,CC和BCC发送邮件?

如何使用python发送电子邮件[关闭]

如何使用带有mailchimp的python发送单个邮件

如何使用 python 3x 从两个单独的运行 python 文件发送数据

python: 如何使用 TO、CC 和 BCC 发送邮件?

如何使用 Python 发送 .docx 附件