在 Python 中发送电子邮件

自动电子邮件广泛用于向订阅者发送通知或其他消息。此外,根据用户的动作或行为触发各种电子邮件。为了实现电子邮件自动化,本文介绍了如何在 Python 中通过 SMTP 发送电子邮件。此外,我们将演示如何从头开始创建带有纯文本或 HTML 正文的电子邮件。

通过 SMTP 发送电子邮件的 Python 库

为了使用 SMTP 创建和发送电子邮件,我们将使用 Aspose.Email for Python via .NET。它是一个强大的 Python 库,可让您实现功能丰富的电子邮件客户端。您可以使用以下命令从 PyPI 安装 API。

pip install Aspose.Email-for-Python-via-NET

或者,您可以按照以下步骤进行手动安装。

  • 下载 部分下载可安装的 .whl 文件。
  • 从命令行,使用命令: pip install «FileName> >.whl 来安装 API。
  • GitHub 下载完整的源代码示例包。

在 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 的更多信息。如果您有任何问题或疑问,请随时通过我们的 论坛 告诉我们。

也可以看看