一、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-hant/n/133907.html
微信掃一掃
支付寶掃一掃