用 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 的更多信息。如果您有任何問題或疑問,請隨時通過我們的 論壇 告訴我們。

也可以看看