python實現傳送郵件

zuijiaz發表於2024-03-13

python實現自動化郵件傳送

測試環境:

os:windows10

編譯軟體:pycharm,python

傳送端:aaa@qq.com

接收端:bbb@outlook.com,ccc@qq.com

1.傳送端需開啟POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務。

我這裡使用的是QQ,需要去mail.qq.com開啟此服務:【登入】-【設定】-【賬號】-【OP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務】

沒有開啟的話會顯示服務已關閉,需手動開啟,我這裡是開啟的,點選【管理服務】

會生成授權嗎,自己儲存一下。

2.以下是python指令碼,自己儲存一下:

 1 import smtplib  # 模組用於傳送郵件
 2 from email.mime.text import MIMEText  # 用於建立純文字郵件內容
 3 from email.mime.multipart import MIMEMultipart  # 用於建立包含附件的郵件內容
 4 from email.header import Header  # 用於處理郵件頭部資訊
 5 
 6 # 郵件傳送方郵箱地址
 7 sender = 'aaa@qq.com'
 8 # 郵件接收方郵箱地址
 9 receivers = ['bbb@outlook.com', 'ccc@qq.com']
10 
11 # 設定郵件內容
12 message = MIMEMultipart()
13 message['From'] = Header('aaa@qq.com')
14 message['To'] = Header('bbb@outlook.com')
15 subject = 'Python SMTP 郵件測試'
16 message['Subject'] = Header(subject, 'utf-8')
17 
18 # 郵件正文內容
19 message.attach(MIMEText('這是一封使用 Python 傳送的郵件', 'plain', 'utf-8'))
20 
21 # 登入郵箱,密碼為授權碼
22 mail_host = "smtp.qq.com"
23 mail_user = "aaa@qq.com"
24 mail_pass = "**********"  # 授權碼
25 
26 try:
27     smtpObj = smtplib.SMTP_SSL(mail_host, 465)
28     smtpObj.login(mail_user, mail_pass)
29     smtpObj.sendmail(sender, receivers, message.as_string())
30     print("郵件傳送成功")
31 except smtplib.SMTPException as e:
32     print("Error: 無法傳送郵件。錯誤資訊:", e)

測試合格

#The write:zuijiaz@outlook.com
#Time of creation:2024.03.13

相關文章