需要用到的模組: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郵箱。
3)會彈出一個密保視窗,按指示操作,會得到一個郵箱授權碼,即為程式碼裡需要的授權碼。
下面為全部程式碼
# 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 ", "[email protected]"],["kaxi", "[email protected]"]]
# 寫入收件人資料
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())
# 關閉伺服器
---------------------
原文:https://blog.csdn.net/qq_42458954/article/details/87928779
需要用到的模組: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郵箱。
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 ", "[email protected]"],["kaxi", "[email protected]"]]
# 寫入收件人資料
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()
---------------------
原文:https://blog.csdn.net/qq_42458954/article/details/87928779