利用Python yagmail三行代碼實現(xiàn)發(fā)送郵件
Python 發(fā)送郵件
我以前在通過Python實現(xiàn)自動化郵件功能的時候是這樣的:
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()
其實,這段代碼也并不復雜,只要你理解使用過郵箱發(fā)送郵件,那么以下問題是你必須要考慮的:
- 你登錄的郵箱帳號/密碼
- 對方的郵箱帳號
- 郵件內(nèi)容(標題,正文,附件)
- 郵箱服務(wù)器(SMTP.xxx.com/pop3.xxx.com)
其實網(wǎng)上其實是有關(guān)于python發(fā)郵件的教程的,主要用的都是smtplib庫,雖然也不復雜,但是并沒有今天要介紹的方法簡單!
今天要介紹的重點對象——yagmail庫
github項目地址: 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','主題:這是一個主題',contents)
效果就是這樣
簡單講解
yagmail.SMTP()參數(shù)
yagmail.SMTP()里面的幾個重要參數(shù)!user和password顧名思義啦,就是你自己的郵箱賬號和密碼
但是這個問題就來了,我們平時登陸郵箱一般賬號密碼登陸有些時候好像是要打驗證碼的呀,這樣python就傳了個賬號和密碼真的能把郵件發(fā)出去嗎?然鵝此密碼非彼密碼,用的密碼是郵箱中的授權(quán)碼,就是專門授權(quá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 是收件人郵箱(給多個目標發(fā)郵件只需創(chuàng)建一個列表,將郵箱放在列表中即可)
args.subject 是主題
args.contents 是郵箱正文
args.attachments 是附件(傳入文件路徑)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
解決python中安裝serial及No module named ‘serial.too
這篇文章主要介紹了解決python中安裝serial及No module named ‘serial.tools‘等問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09np.meshgrid中的indexing參數(shù)問題解決
本文主要介紹了np.meshgrid中的indexing參數(shù)問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03