利用Python編寫郵件發送程序,輕鬆實現自動通知

一、Python 發送郵件的基本原理

在發送郵件前,需要先了解郵件的發送原理。郵件發送的過程大致可以分為以下幾步:

(1)打開郵箱客戶端:比如Outlook,Thunderbird等

(2)連接 SMTP 伺服器:所有的郵件客戶端都需要連接一個SMTP伺服器,該伺服器可以發送郵件或轉發郵件到其他的SMTP伺服器;

(3)驗證登錄信息:如果你是第一次登錄伺服器,還需要在郵箱客戶端中設置POP和IMAP等協議的用戶名和密碼;

(4)編輯郵件:填寫發送人、收件人、主題、內容等信息;

(5)發送郵件:將郵件支付給SMTP伺服器,SMTP伺服器再通過郵件路由將郵件發送到指定的收件人郵箱。

Python發送郵件的過程類似,需要連接到SMTP伺服器,處理授權和驗證等信息,然後組裝郵件正文和附件並將郵件發送到指定的收件人郵箱。

二、Python 發送郵件的基本步驟

Python發送郵件的基本流程包括如下幾個步驟:

(1)導入發送郵件所需的庫;

(2)配置發送郵件的SMTP伺服器信息;

(3)配置郵件發送人和郵件接收人及郵件主題等信息;

(4)讀取郵件正文內容和郵件附件(如果需要);

(5)將郵件以指定的格式進行組裝,比如HTML格式和純文本格式;

(6)將郵件發送到指定的收件人郵箱。

三、Python 發送郵件的實現過程

# 導入發送郵件所需的庫
import smtplib
from email.mime.text import MIMEText   # 導入 MIMEText 類發送純文本郵件
from email.mime.multipart import MIMEMultipart     # 導入 MIMEMultipart 類發送帶有附件的郵件
from email.mime.application import MIMEApplication # 導入 MIMEApplication 類發送二進位附件

## 配置郵件伺服器信息
smtp_server = "smtp.exmail.qq.com"     # 設置發送郵件的 SMTP 伺服器地址
smtp_port   = 465                      # 設置發送郵件的 SMTP 伺服器埠號,一般為 25 埠
sender      = "webmaster@test.com"     # 設置發送郵件的郵箱地址
username    = "webmaster@test.com"     # 設置發送郵件的郵箱用戶名
password    = "password"               # 設置發送郵件的郵箱密碼或授權碼

## 配置郵件信息
receivers = ["test1@test.com", "test2@test.com"]      # 設置郵件接收人地址
subject   = "這是一封帶有附件的測試郵件"            # 設置郵件主題 
text      = "這是一封測試郵件,請勿回復!"            # 設置郵件正文
file_path = "test.txt"                                # 設置郵件附件文件路徑

# 讀取郵件附件,使用 MIMEApplication 類組裝附件
with open(file_path, "rb") as f:
    attachment = MIMEApplication(f.read())
    attachment.add_header("Content-Disposition", "attachment", filename=file_path)

# 使用 MIMEMultipart 類組裝郵件附件和正文
msg = MIMEMultipart()
msg["From"]     = sender
msg["To"]       = ";".join(receivers)
msg["Subject"]  = subject
msg.attach(MIMEText(text, "plain", "utf-8"))
msg.attach(attachment)

# 連接 SMTP 伺服器並發送郵件
smtp = smtplib.SMTP_SSL(smtp_server, smtp_port)    
smtp.login(username, password)
smtp.sendmail(sender, receivers, msg.as_string())
smtp.quit()

四、總結

本文介紹了使用Python編寫郵件發送程序的基本原理和實現步驟。學會使用Python發送郵件可以輕鬆實現自動通知,給運維管理人員和開發人員提供了很大的幫助。

原創文章,作者:XXCP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133907.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XXCP的頭像XXCP
上一篇 2024-10-04 00:02
下一篇 2024-10-04 00:02

相關推薦

  • Python程序需要編譯才能執行

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

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

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

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨著深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟體開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29
  • 改善Python程序的90個建議pdf網盤

    本文將從多個方面對改善Python程序的90個建議pdf網盤進行詳細闡述,幫助Python開發者提高程序的性能和效率。 一、代碼優化 1、使用map函數或列表推導式代替for循環。…

    編程 2025-04-29

發表回復

登錄後才能評論