Python怎么群發郵件?
需要用到的模塊:email模塊,smtplib模塊
email模塊用來構建文件內容,smtplib模塊用來發郵件,這兩個都是Python內置模塊。
smtplib模塊使用方法:
import smtplib
server = smtplib.SMTP()
server.connect(host, port)
server.login(username, password)
server.sendmail(sender, to_addr, msg.as_string())
server.quit()
其中,SMTP是一個類,class(),要想調用 smtplib 模塊下、SMTP 類下的方法,應該這樣寫:smtplib.SMTP.方法,賦值給server是為了減少代碼的冗余。
SMTP (Simple Mail Transfer Protocol)翻譯過來是“簡單郵件傳輸協議”的意思,SMTP 協議是由源服務器到目的地服務器傳送郵件的一組規則。可以簡單理解為:我們需要通過SMTP指定一個服務器,這樣才能把郵件送到另一個服務器。
host是指定連接的郵箱服務器,你可以指定服務器的域名。通過搜索“xx郵箱服務器地址”,就可以找到。port 是“端口”的意思。一般情況下SMTP默認端口號為25。
郵箱授權碼的獲取需要登錄QQ郵箱。
1)登錄QQ郵箱,點擊設置。
2)點擊賬戶,往下拉,打開 SMTP服務
3)會彈出一個密保窗口,按指示操作,會得到一個郵箱授權碼,即為代碼里需要的授權碼。
下面為全部代碼
import smtplib
# smtplib 用于郵件的發信動作
from email.mime.text import MIMEText
# email 用于構建郵件內容
from email.header import Header
# 用于構建郵件頭
import csv
# 引用csv模塊,用于讀取郵箱信息
# 發信方的信息:發信郵箱,QQ郵箱授權碼
# 方便起見,你也可以直接賦值
from_addr = input('請輸入登錄郵箱:')
password = input('請輸入郵箱授權碼:')#授權碼需要自己登陸郵箱,進入設置,隱私設置,開啟指定的SMTP設置
# 發信服務器
smtp_server = 'smtp.qq.com'
# 郵件內容
text='''hey 這是我用Python發的第一封郵件
人生苦短,我用Python
'''
# 待寫入csv文件的收件人數據:人名+郵箱
# 記得替換成你要發送的名字和郵箱
data = [['wufeng ', 'wufeng@qq.com'],['kaxi', 'kaxi@qq.com']]
# 寫入收件人數據
with open('to_addrs.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in data:
writer.writerow(row)
# 讀取收件人數據,并啟動寫信和發信流程
with open('to_addrs.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
to_addrs=row[1]
msg = MIMEText(text,'plain','utf-8')
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addrs)
msg['Subject'] = Header('python test')
server = smtplib.SMTP_SSL()
server.connect(smtp_server,465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addrs, msg.as_string())
# 關閉服務器
server.quit()
---------------------
作者:一個人旅行*-*
來源:CSDN
原文:https://blog.csdn.net/qq_42458954/article/details/87928779
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!