利用Python yagmail三行代碼實(shí)現(xiàn)發(fā)送郵件
Python 發(fā)送郵件
我以前在通過Python實(shí)現(xiàn)自動化郵件功能的時(shí)候是這樣的:
import smtplib from email.mime.text import MIMEText from email.header import Header # 發(fā)送郵箱服務(wù)器 smtpserver = 'smtp.sina.com' # 發(fā)送郵箱用戶/密碼 user = 'username@sina.com' password = '123456' # 發(fā)送郵箱 sender = 'username@sina.com' # 接收郵箱 receiver = 'receive@126.com' # 發(fā)送郵件主題 subject = 'Python email test' # 編寫HTML類型的郵件正文 msg = MIMEText('<html><h1>你好!</h1></html>','html','utf-8') msg['Subject'] = Header(subject, 'utf-8') # 連接發(fā)送郵件 smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(user, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit()
其實(shí),這段代碼也并不復(fù)雜,只要你理解使用過郵箱發(fā)送郵件,那么以下問題是你必須要考慮的:
- 你登錄的郵箱帳號/密碼
- 對方的郵箱帳號
- 郵件內(nèi)容(標(biāo)題,正文,附件)
- 郵箱服務(wù)器(SMTP.xxx.com/pop3.xxx.com)
其實(shí)網(wǎng)上其實(shí)是有關(guān)于python發(fā)郵件的教程的,主要用的都是smtplib庫,雖然也不復(fù)雜,但是并沒有今天要介紹的方法簡單!
今天要介紹的重點(diǎn)對象——yagmail庫
github項(xiàng)目地址: https://github.com/kootenpv/yagmail (本地下載)
話不多說,先看例子:
import yagmail yag = yagmail.SMTP(user='user@163.com',password='1234',host='smtp.163.com') contents = ['這里是內(nèi)容'] yag.send('target@qq.com','主題:這是一個(gè)主題',contents)
效果就是這樣
簡單講解
yagmail.SMTP()參數(shù)
yagmail.SMTP()里面的幾個(gè)重要參數(shù)!user和password顧名思義啦,就是你自己的郵箱賬號和密碼
但是這個(gè)問題就來了,我們平時(shí)登陸郵箱一般賬號密碼登陸有些時(shí)候好像是要打驗(yàn)證碼的呀,這樣python就傳了個(gè)賬號和密碼真的能把郵件發(fā)出去嗎?然鵝此密碼非彼密碼,用的密碼是郵箱中的授權(quán)碼,就是專門授權(quán)給機(jī)器登陸的密碼。一般郵箱中,進(jìn)入設(shè)置,然后POP3/SMTP/IMAP設(shè)置,打開服務(wù)就可以設(shè)置授權(quán)碼了。
send()參數(shù)
yag.send(to=args.to,subject=args.subject,contents=args.contents,attachments=args.attachments)
args.to 是收件人郵箱(給多個(gè)目標(biāo)發(fā)郵件只需創(chuàng)建一個(gè)列表,將郵箱放在列表中即可)
args.subject 是主題
args.contents 是郵箱正文
args.attachments 是附件(傳入文件路徑)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
python Qt5實(shí)現(xiàn)窗體跟蹤鼠標(biāo)移動
今天小編就為大家分享一篇python Qt5實(shí)現(xiàn)窗體跟蹤鼠標(biāo)移動,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12django數(shù)據(jù)庫自動重連的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于django數(shù)據(jù)庫自動重連的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07解決python中安裝serial及No module named ‘serial.too
這篇文章主要介紹了解決python中安裝serial及No module named ‘serial.tools‘等問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Django實(shí)現(xiàn)簡單分頁功能的方法詳解
這篇文章主要介紹了Django實(shí)現(xiàn)簡單分頁功能的方法,結(jié)合實(shí)例形式分析了django的第三方模塊django-pure-pagination的安裝、使用及實(shí)現(xiàn)分頁的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12Matplotlib實(shí)戰(zhàn)之堆疊面積圖繪制詳解
堆疊面積圖和面積圖都是用于展示數(shù)據(jù)隨時(shí)間變化趨勢的統(tǒng)計(jì)圖表,但它們的特點(diǎn)有所不同,堆疊面積圖既能看到各數(shù)據(jù)系列的走勢,又能看到整體的規(guī)模,下面我們就來看看如何繪制堆疊面積圖吧2023-08-08np.meshgrid中的indexing參數(shù)問題解決
本文主要介紹了np.meshgrid中的indexing參數(shù)問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03