Python實現(xiàn)郵件發(fā)送功能的示例詳解
想實現(xiàn)發(fā)送郵件需要經(jīng)過以下幾步:
1、登錄郵件服務(wù)器
2、構(gòu)造符合郵件協(xié)議規(guī)則要求的郵件內(nèi)容
3、發(fā)送
Python對SMTP支持有smtplib和email兩個模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件,它對smtp協(xié)議進(jìn)行了簡單的封裝。
這里我們用qq郵箱為例,并且自己是可以給自己發(fā)郵件的。
在開始前我們先做準(zhǔn)備工作:
登錄qq郵箱,后點(diǎn)擊“設(shè)置”

點(diǎn)擊“賬戶”

確保前兩項已開啟,然后點(diǎn)擊生成授權(quán)碼。
因為我們網(wǎng)頁登錄時的密碼是不可以用來python上使用;qq為了安全,我們平常用網(wǎng)頁或者qq官方的客戶端可以用我們的qq密碼登錄,但是第三方(比如python)是不可以登錄的。
所以要生成第三方授權(quán)碼。


代碼
import smtplib
from email.mime.text import MIMEText # 郵件正文
from email.header import Header # 郵件頭
# 登錄郵件服務(wù)器
smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件人的SMTP服務(wù)器,端口號25
smtp_obj.login("你的qq賬號", 'admc********') # 括號中的內(nèi)容分別是發(fā)件人郵箱賬號、授權(quán)碼
smtp_obj.set_debuglevel(1) # 顯示調(diào)試信息,可以不用寫
# 設(shè)置郵件頭信息
msg = MIMEText("測試用Python發(fā)送email。", "plain", "utf-8") # 正文內(nèi)容
msg['From'] = Header("小天天", 'utf-8') # 發(fā)件人名字
msg["To"] = Header("有緣人", "UTF-8") # 接收者名字
msg["Subject"] = Header('用Python發(fā)送郵件2022', 'utf-8') # 主題
# 發(fā)送
smtp_obj.sendmail('發(fā)送人郵箱', ['接收人郵箱'], msg.as_string())
#第一個是發(fā)送人郵箱;第二個是數(shù)組,說明可以給多個人發(fā)送;msg就是剛剛寫的發(fā)送內(nèi)容。
運(yùn)行代碼

細(xì)節(jié):SMTP使用是25端口,SSL使用的是456端口;SMTP是明文發(fā)送,SSL是加密發(fā)送
發(fā)送html格式的內(nèi)容
import smtplib
from email.mime.text import MIMEText # 郵件正文
from email.header import Header # 郵件頭
# 登錄郵件服務(wù)器
smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件人的SMTP服務(wù)器,端口號25
smtp_obj.login("2308748900", 'admcwiwxxgmwdifh') # 括號中的內(nèi)容分別是發(fā)件人郵箱賬號、郵箱密碼
smtp_obj.set_debuglevel(1) # 顯示調(diào)試信息,可以不用寫
# 設(shè)置郵件頭信息
# HTML
msg_body='''
<h4>python發(fā)送html格式的郵件</h4>
<p>
測試用HTML格式發(fā)送郵件
</p>
'''
msg = MIMEText(msg_body, "html", "utf-8") # 將plain改成html
msg['From'] = Header("小天天", 'utf-8') # 發(fā)件人名字
msg["To"] = Header("有緣人", "UTF-8") # 接收者名字
msg["Subject"] = Header('用Python發(fā)送郵件2022', 'utf-8') # 主題
# 發(fā)送
smtp_obj.sendmail('2308748900@qq.com', ['2308748900@qq.com'], msg.as_string())主要代碼和上面基本一樣,只是將文本改成html的代碼內(nèi)容而已

到此這篇關(guān)于Python實現(xiàn)郵件發(fā)送功能的示例詳解的文章就介紹到這了,更多相關(guān)Python郵件發(fā)送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python編譯結(jié)果之code對象與pyc文件詳解
今天小編就為大家分享一篇對Python編譯結(jié)果之code對象與pyc文件的詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-10-10
從基礎(chǔ)到進(jìn)階帶你玩轉(zhuǎn)Python中的JSON
JSON是一種輕量級的數(shù)據(jù)交換格式,在Python中處理JSON數(shù)據(jù)是日常開發(fā)中的常見任務(wù)之一,本文將詳細(xì)介紹如何在Python中處理JSON對象,需要的可以參考下2024-12-12
Python使用captcha庫制作帶參數(shù)輸入驗證碼案例
這篇文章主要介紹了Python使用captcha庫制作驗證碼,帶參數(shù)輸入,本文通過實例案例解析給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
python循環(huán)之彩色圓環(huán)實現(xiàn)示例
這篇文章主要為大家介紹了python循環(huán)之彩色圓環(huán)實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

