Python實(shí)現(xiàn)郵件發(fā)送功能的示例詳解
想實(shí)現(xiàn)發(fā)送郵件需要經(jīng)過以下幾步:
1、登錄郵件服務(wù)器
2、構(gòu)造符合郵件協(xié)議規(guī)則要求的郵件內(nèi)容
3、發(fā)送
Python對SMTP支持有smtplib和email兩個(gè)模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件,它對smtp協(xié)議進(jìn)行了簡單的封裝。
這里我們用qq郵箱為例,并且自己是可以給自己發(fā)郵件的。
在開始前我們先做準(zhǔn)備工作:
登錄qq郵箱,后點(diǎn)擊“設(shè)置”
點(diǎn)擊“賬戶”
確保前兩項(xiàng)已開啟,然后點(diǎn)擊生成授權(quán)碼。
因?yàn)槲覀兙W(wǎng)頁登錄時(shí)的密碼是不可以用來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()) #第一個(gè)是發(fā)送人郵箱;第二個(gè)是數(shù)組,說明可以給多個(gè)人發(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實(shí)現(xiàn)郵件發(fā)送功能的示例詳解的文章就介紹到這了,更多相關(guān)Python郵件發(fā)送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python學(xué)習(xí)筆記之Zip和Enumerate用法實(shí)例分析
這篇文章主要介紹了Python學(xué)習(xí)筆記之Zip和Enumerate用法,結(jié)合實(shí)例形式分析了Zip和Enumerate的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-08-08Python利用第三方模塊實(shí)現(xiàn)壓縮css文件
在?Python?中可以使用多種方法來壓縮?CSS?文件。其中一種流行的方法是使用?csscompressor?庫,這個(gè)庫可以幫助你壓縮?CSS?代碼,下文就來和大家詳細(xì)聊聊2023-01-01Python庫中可以操作JavaScript盤點(diǎn)解析
這篇文章主要為大家介紹了Python庫之可以操作JavaScript盤點(diǎn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06OpenCV+MediaPipe實(shí)現(xiàn)手部關(guān)鍵點(diǎn)識別
這篇文章主要介紹了如何通過OpenCV MediaPipe實(shí)現(xiàn)手部關(guān)鍵點(diǎn)識別,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定的價(jià)值,需要的可以參考一下2022-01-01MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟
一般MAC上使用的是zsh的shell工具,需要修改zshrc文件來使環(huán)境變量永久生效(若不修改該文件,在命令行中輸入相應(yīng)的命令即可,本文給大家介紹MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟,感興趣的朋友跟隨小編一起看看吧2021-12-12pytorch如何獲得模型的計(jì)算量和參數(shù)量
這篇文章主要介紹了pytorch如何獲得模型的計(jì)算量和參數(shù)量操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python3使用tracemalloc實(shí)現(xiàn)追蹤mmap內(nèi)存變化
這篇文章主要為大家詳細(xì)介紹了在Python3中如何使用tracemalloc實(shí)現(xiàn)追蹤mmap內(nèi)存變化,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03