使用Python SMTP Server輕鬆發送郵件

一、使用Python SMTP Server發送郵件的優勢

Python提供了一個簡單而強大的SMTP模塊,方便開發者使用Python代碼發送郵件。使用Python SMTP Server發送郵件的優勢主要有以下幾點:

1、Python SMTP Server模塊提供了許多高級功能,例如SSL支持、身份驗證和多個收件人。

2、使用Python SMTP Server發送郵件比使用其他郵件客戶端發送郵件更方便和安全。

3、Python SMTP Server對於郵件服務器錯誤的處理能力很強,讓開發者可以輕鬆處理郵件發送失敗、服務器不可用和其他網絡問題。

二、Python SMTP Server發送簡單的文本郵件

下面是一個使用Python SMTP Server發送簡單文本郵件的代碼示例:

import smtplib

# 發送人郵箱
sender_email = "sender@example.com"
# 接收人郵箱
receiver_email = "receiver@example.com"

# SMTP服務器
smtp_server = "smtp.example.com"
smtp_port = 587

# 發送人郵箱及密碼
username = "sender@example.com"
password = "password"

# 郵件內容
message = """\
Subject: Hello, World!

This is a plain text email from Python SMTP Server.
"""

# SSL加密方式
context = ssl.create_default_context()

# 發送郵件
with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls(context=context)
    server.login(username, password)
    server.sendmail(sender_email, receiver_email, message)

在代碼中,我們首先將SMTP服務器的地址、端口號、郵箱和密碼等信息設置好,並將要發送的郵件內容填寫好,之後使用SMTP模塊的SMTP()方法連接上SMTP服務器,並使用starttls()方法開啟SSL加密。

最後使用login()方法登錄SMTP服務器,使用sendmail()方法將郵件發送給指定收件人。其中,sendmail()方法的三個參數分別為發送人郵箱、接收人郵箱以及郵件內容。

三、Python SMTP Server發送帶附件郵件

下面是一個使用Python SMTP Server發送帶附件郵件的代碼示例:

import smtplib
import ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

# 發送人郵箱
sender_email = "sender@example.com"
# 接收人郵箱
receiver_email = "receiver@example.com"

# SMTP服務器
smtp_server = "smtp.example.com"
smtp_port = 587

# 發送人郵箱及密碼
username = "sender@example.com"
password = "password"

# 郵件內容
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = "Python SMTP Server with Attachment"

# 添加正文
message.attach(MIMEText("This is a plain text email with attachment from Python SMTP Server."))

# 添加附件
with open("example.jpg", "rb") as attachment:
    part = MIMEApplication(attachment.read(), _subtype="jpg")
    part.add_header('Content-Disposition', "attachment", filename="example.jpg")
    message.attach(part)

# SSL加密方式
context = ssl.create_default_context()

# 發送郵件
with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls(context=context)
    server.login(username, password)
    server.sendmail(sender_email, receiver_email, message.as_string())

我們可以在創建郵件內容message的時候,使用MIMEMultipart()方法創建一個帶有多個部分的郵件。其中一部分是正文,另一部分是附件。我們使用MIMEText()方法將正文內容添加到郵件內容中,使用MIMEApplication()方法添加附件並指定附件的文件名,之後使用add_header()方法指定附件的內容。

在發送郵件的時候,我們使用了as_string()方法將郵件內容轉換為字符串形式,並使用sendmail()方法發送郵件。

四、Python SMTP Server發送HTML郵件

下面是一個使用Python SMTP Server發送HTML郵件的代碼示例:

import smtplib
import ssl
from email.mime.text import MIMEText

# 發送人郵箱
sender_email = "sender@example.com"
# 接收人郵箱
receiver_email = "receiver@example.com"

# SMTP服務器
smtp_server = "smtp.example.com"
smtp_port = 587

# 發送人郵箱及密碼
username = "sender@example.com"
password = "password"

# 郵件內容
message = MIMEText("

Hello, World!

This is a HTML email from Python SMTP Server.

", "html") message["From"] = sender_email message["To"] = receiver_email message["Subject"] = "Python SMTP Server with HTML" # SSL加密方式 context = ssl.create_default_context() # 發送郵件 with smtplib.SMTP(smtp_server, smtp_port) as server: server.starttls(context=context) server.login(username, password) server.sendmail(sender_email, receiver_email, message.as_string())

在這個代碼示例中,我們使用了MIMEText()方法創建郵件內容。我們將郵件內容目標類型設置為html,並在郵件內容中嵌入HTML標記。在最後發送郵件時,我們也是使用as_string()方法將郵件內容轉換為字符串形式。

五、Python SMTP Server發送帶有圖片的HTML郵件

下面是一個使用Python SMTP Server發送帶有圖片的HTML郵件的代碼示例:

import smtplib
import ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

# 發送人郵箱
sender_email = "sender@example.com"
# 接收人郵箱
receiver_email = "receiver@example.com"

# SMTP服務器
smtp_server = "smtp.example.com"
smtp_port = 587

# 發送人郵箱及密碼
username = "sender@example.com"
password = "password"

# 郵件內容
message = MIMEMultipart("related")
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = "Python SMTP Server with Image"

# 添加HTML內容
body = """
    

Hello, World!

This is a HTML email with image from Python SMTP Server.

""" message.attach(MIMEText(body, "html")) # 添加圖片 with open("example.jpg", "rb") as image: img = MIMEImage(image.read()) img.add_header('Content-ID', '') message.attach(img) # SSL加密方式 context = ssl.create_default_context() # 發送郵件 with smtplib.SMTP(smtp_server, smtp_port) as server: server.starttls(context=context) server.login(username, password) server.sendmail(sender_email, receiver_email, message.as_string())

在這個代碼示例中,我們使用了MIMEMultipart()方法創建郵件內容,將多個郵件正文及圖片組合在一起。我們使用MIMEText()方法將郵件正文指定為HTML格式,並在郵件內容中嵌入<img>標記以顯示圖片。

在添加圖片img時,我們使用了add_header()方法指定了圖片的Content-ID。相應地,在嵌入圖片的<img>標記中,我們使用了cid:協議方案指定了圖片的Content-ID,達到了在HTML郵件中嵌入圖片的效果。

六、總結

通過本篇文章的介紹,我們可以看到Python SMTP Server提供了非常強大的功能,只需要幾行Python代碼即可輕鬆發送各種類型的郵件。使用Python SMTP Server不僅方便,而且也更加安全和穩定,可以滿足開發者對郵件發送的各種要求。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237965.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:08
下一篇 2024-12-12 12:08

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論