自动电子邮件广泛用于向订阅者发送通知或其他消息。此外,根据用户的动作或行为触发各种电子邮件。为了实现电子邮件自动化,本文介绍了如何在 Python 中通过 SMTP 发送电子邮件。此外,我们将演示如何从头开始创建带有纯文本或 HTML 正文的电子邮件。
通过 SMTP 发送电子邮件的 Python 库
为了使用 SMTP 创建和发送电子邮件,我们将使用 Aspose.Email for Python via .NET。它是一个强大的 Python 库,可让您实现功能丰富的电子邮件客户端。您可以使用以下命令从 PyPI 安装 API。
pip install Aspose.Email-for-Python-via-NET
或者,您可以按照以下步骤进行手动安装。
在 Python 中通过 SMTP 发送电子邮件
以下是在 Python 中通过 SMTP 创建和发送电子邮件的步骤。
- 创建 MailMessage 类的对象。
- 设置主题、正文、发件人和收件人地址。
- 设置抄送或密送(可选)。
- 使用 SmtpClient 类创建一个新的 SMTP 客户端并设置主机、端口、用户名和密码。
- 设置安全选项。
- 使用 SmtpClient.send(MailMessage) 方法发送电子邮件。
以下代码示例展示了如何在 Python 中创建和发送电子邮件。
# 创建电子邮件
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is plain text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))
# 创建 SMTP 客户端
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
# 发送电子邮件
client.send(eml)
在 Python 中发送带有 HTML 正文的电子邮件
以下是在 Python 中发送带有 HTML 正文的电子邮件的步骤。
- 创建 MailMessage 类的对象。
- 使用 MailMessage.bodyhtml 属性设置电子邮件的正文。
- 将 MailMessage.isbodyhtml 属性设置为 true。
- 分配主题、发件人和收件人的地址。
- 设置抄送或密送(可选)。
- 使用 SmtpClient 类创建一个新的 SMTP 客户端并设置主机、端口、用户名和密码。
- 使用 SmtpClient.send(MailMessage) 方法发送电子邮件。
以下代码示例展示了如何在 Python 中发送带有 HTML 正文的电子邮件。
# 使用 HTML 正文创建电子邮件
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.is_body_html = True
eml.html_body = "<html><body>This is the <b>HTML</b>body</body></html>"
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))
# 创建 SMTP 客户端
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
# 发送电子邮件
client.send(eml)
用于发送大量电子邮件的 Python 代码
以下是在 Python 中发送批量电子邮件的步骤。
- 使用 MailMessage 类创建多个电子邮件消息并设置它们的属性,例如主题、收件人等。
- 创建 MailMessageCollection 类的对象。
- 使用 MailMessageCollection.append(MailMessage) 方法将电子邮件消息添加到集合中。
- 使用 SmtpClient 类创建一个新的 SMTP 客户端并设置主机、端口、用户名和密码。
- 使用 SmtpClient.send(MailMessageCollection) 方法发送电子邮件。
以下代码示例展示了如何在 Python 中通过 SMTP 发送批量电子邮件。
# 创建多封电子邮件
message1 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message1, how are you?")
message2 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message2, how are you?")
message3 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message3, how are you?")
# 将消息添加到集合
manyMsg = MailMessageCollection()
manyMsg.append(message1)
manyMsg.append(message2)
manyMsg.append(message3)
# 创建 SMTP 客户端
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
# 发电子邮件
client.send(manyMsg)
如何在 Python 中转发电子邮件
以下是在 Python 中转发电子邮件的步骤。
- 使用 MailMessage.load(String fileName) 方法将电子邮件消息加载到对象中。
- 设置收件人地址。
- 使用 SmtpClient 类创建一个 SMTP 客户端。
- 使用 SmtpClient.forward() 方法转发消息。
以下代码示例展示了如何在 Python 中转发电子邮件。
# 加载要转发的电子邮件
eml = MailMessage.load("Message.eml")
# 设置收件人
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))
# 使用 SMTP 客户端发送
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
client.forward("Recipient1@domain.com", "Recipient2@domain.com", eml)
用于发送电子邮件的 Python 库 - 获得免费许可证
您可以获得 免费临时许可证 并通过 SMTP 发送电子邮件而没有评估限制。
用于 Python 的 Aspose 电子邮件库 - 现场演示
结论
在本文中,您学习了如何在 Python 中通过 SMTP 创建和发送电子邮件。此外,您还了解了如何以编程方式发送带有纯文本或 HTML 正文的批量电子邮件。您可以使用 文档 探索有关 Python 电子邮件 API 的更多信息。如果您有任何问题或疑问,请随时通过我们的 论坛 告诉我们。