Knowledgebase

使用 Python 发送电子邮件(带附件) - 新教程

了解如何使用 Aspose API 轻松地用 Python 发送电子邮件。借助 Aspose.Email for Python via .NET 库,您可以创建、转换、发送、接收或操作电子邮件消息,包括 MSGPSTEMLEMLX 等多种文件格式。

使用 Python 发送电子邮件

Aspose.Email for Python via .NET 是一套功能强大的电子邮件编程 API,可用于创建、操作和转换常见的电子邮件消息格式,而无需关心底层格式的复杂实现。它是一套易于使用的类库,旨在提供卓越且稳健的电子邮件编程组件。Aspose.Email for Python 通过让您快速、轻松地在应用程序中编写复杂的消息文件处理代码,帮助您节省时间和精力。

我们的 API 可用于在各种应用程序中执行多种任务,并可与任何类型的应用程序集成。我们提供代码示例,帮助开发者快速上手。

Aspose.Email for Python via .NET 的功能:

  • 转换和渲染电子邮件格式
  • 发送和接收常见电子邮件格式(包括附件)
  • 从 IMAP 和 POP3 邮件服务器下载邮件
  • 使用 iCalendar 创建和更新任务
  • 操作邮件存储文件
  • 处理电子邮件附件
  • 操作符合 iCalendar 标准的会议或约会
  • 支持 TLS 和 SSL
  • 支持 TNEF 附件

支持的文件格式:

  • MSG – Microsoft Outlook 与 Exchange 用于存储邮件、约会等的格式
  • PST – Outlook 个人存储文件,用于存储邮件、日历、联系人等
  • OST – 注册到 Exchange Server 后在本地机器上的用户邮箱数据
  • OFT – Microsoft Outlook 消息模板文件
  • EML – 由 Outlook 或类似应用保存的电子邮件消息
  • EMLX – Apple 开发实现的文本文件格式
  • MBOX – 用于收集电子邮件消息的格式
  • ICS – 用于通过电子邮件共享事件和安排任务的 iCalendar 文件格式
  • VCF – 电子名片文件格式,用于存储联系人信息
  • HTML – 用于网页的超文本标记语言扩展
  • MHTML – 包含网页内容的归档格式

使用 Python 创建并设置电子邮件内容

创建电子邮件消息

使用 MailMessage 类,开发者可以创建新的电子邮件消息。该类代表一封电子邮件,您可以轻松为创建的邮件设置 From、To、Subject、Body 等属性。

我们将按以下步骤创建新邮件:

  1. 实例化 MailMessage 类
  2. 设置电子邮件属性
  3. 将邮件保存为不同格式,如 EML、MSG、MHTML

下面的代码片段演示了如何创建具有不同属性的邮件:
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
eml = ae.MailMessage()
eml.subject = "New MailMessage created with Aspose.Email for Python"
eml.html_body = "<b>This line is in bold </b> while this is normal text"
eml.from_address = "from@domain.com"

eml.to.append(ae.MailAddress("to1@domain.com", "Recipient 1"))
eml.to.append(ae.MailAddress("to2@domain.com", "Recipient 2"))

eml.cc.append(ae.MailAddress("cc1@domain.com", "Recipient 3"))
eml.cc.append(ae.MailAddress("cc2@domain.com", "Recipient 4"))

#Save generated EML in different formats to disc
eml.save(dataDir + "CreateNewMailMessage_out.eml")
eml.save(dataDir + "CreateNewMailMessage_out.msg", ae.SaveOptions.default_msg_unicode)
eml.save(dataDir + "message_out.msg", ae.SaveOptions.default_msg)
eml.save(dataDir + "message_out.mhtml", ae.SaveOptions.default_mhtml)
eml.save(dataDir + "message_out.html", ae.SaveOptions.default_html)

设置邮件的 HTML 正文

使用 HtmlBody 可以指定消息正文的 HTML 内容。下面的代码片段演示了如何设置 HTML 正文:
# For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Declare message as MailMessage instance
eml = ae.MailMessage()

# Specify HtmlBody
eml.html_body = "<html><body>This is the HTML body</body></html>"

在邮件中设置备用文本

AlternateView 类用于在不同格式下提供邮件的副本,该类包含两个属性:

  • LinkedResources:在渲染时,邮件内容中的 URL 会与 LinkedResources 集合中每个对象的 Content Link 进行匹配和解析
  • BaseUri:邮件阅读器用于解析正文中相对 URL 的基准地址

下面的示例代码展示了如何添加备用文本:
# For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Declare message as MailMessage instance
eml = ae.MailMessage()

# Creates AlternateView to view an email message using the content specified in the //string
alternate = AlternateView.create_alternate_view_from_string("Alternate Text")

# Adding alternate text
eml.add_alternate_view(alternate)

向邮件添加附件

添加附件的步骤如下:

  1. 实例化 MailMessage 和 Attachment 类
  2. 将附件加载到 Attachment 实例中
  3. 将 Attachment 实例添加到 MailMessage 实例中

下面的代码片段演示了如何向邮件添加附件:
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Create an instance of MailMessage class
message = MailMessage("sender@domain.com", "receiver@domain.com")

# Load an attachment
attachment = Attachment(dataDir + "1.txt");

# Add Multiple Attachment in instance of MailMessage class and Save message to disk
message.attachments.append(attachment);
message.add_attachment(Attachment(dataDir + "1.jpg"))
message.add_attachment(Attachment(dataDir + "1.doc"))
message.add_attachment(Attachment(dataDir + "1.rar"))
message.add_attachment(Attachment(dataDir + "1.pdf"))
message.save(dataDir + "AddEmailAttachments_out.msg", SaveOptions.default_msg_unicode)

使用 Python 发送电子邮件

Aspose.Email for Python 支持通过 SMTP、POP3 和 IMAP 服务器发送电子邮件。您可以使用用户名和密码或 APOP 认证轻松登录 POP3 服务器,执行查看邮箱大小、邮件数量、检索完整邮件或其头部、删除服务器邮件以及其他 POP3 基本命令等操作。

Aspose.Email for Python 还支持 IMAP 协议及其命令、认证、文件夹选择、创建、删除、查询、保存邮件、获取、删除以及标签操作等功能。

使用 SMTP 客户端发送邮件

使用 Python 发送电子邮件的步骤如下:

  1. 实例化 MailMessage 类
  2. 在 MailMessage 实例中指定发件人和收件人的电子邮件地址
  3. 指定 TextBody 内容
  4. 实例化 SmtpClient 类并发送邮件

下面的代码片段演示了如何使用 Python 发送纯文本邮件:
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
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"))

#Send using Smtp Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

client.send(eml)

如果您在项目中需要帮助,随时可以联系我的 付费咨询 专家。我们的团队将与您合作,找到最适合您项目的解决方案,进行相应实现并为您提供最高价值。
您可以在未来的成长与发展中依赖我们的支持。