Python自動(dòng)化辦公之郵件發(fā)送全過(guò)程詳解
使用Python
實(shí)現(xiàn)自動(dòng)化郵件發(fā)送,可以讓你擺脫繁瑣的重復(fù)性業(yè)務(wù),可以節(jié)省非常多的時(shí)間。
操作前配置(以較為復(fù)雜的QQ郵箱舉例,其他郵箱操作類(lèi)似)
單擊設(shè)置-賬號(hào),滑倒下方協(xié)議處,開(kāi)啟IMAP/SMTP協(xié)議(IMAP,即Internet Message Access Protocol
(互聯(lián)網(wǎng)郵件訪問(wèn)協(xié)議),可以通過(guò)這種協(xié)議從郵件服務(wù)器上獲取郵件的信息、下載郵件等。IMAP與POP類(lèi)似,都是一種郵件獲取協(xié)議。)
(ps.開(kāi)啟需要驗(yàn)證)
記住端口號(hào),后續(xù)寫(xiě)代碼發(fā)送郵件時(shí)候需要:
生成授權(quán)碼,前期配置完成
- 賬號(hào):3203068752@qq.com
- 授權(quán)碼:iwmha*****ndcei (大家換成自己的,我怕大家把我郵箱發(fā)炸了)
- 端口號(hào):465
123
我們首先來(lái)發(fā)送一個(gè)簡(jiǎn)單的郵件:
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]
參數(shù)說(shuō)明:
from_addr
: 郵件發(fā)送者地址。to_addrs
: 字符串列表,郵件發(fā)送地址。msg
: 發(fā)送消息
這里要注意一下:第三個(gè)參數(shù),msg是字符串,表示郵件。我們知道郵件一般由標(biāo)題,發(fā)信人,收件人,郵件內(nèi)容,附件等構(gòu)成,發(fā)送郵件的時(shí)候,要注意msg的格式。這個(gè)格式就是smtp協(xié)議中定義的格式。
import smtplib from email.mime.text import MIMEText ##輸入發(fā)件人郵箱名稱(chēng) email_name = '你的郵箱' # 輸入用戶授權(quán)碼 passwd = '你的授權(quán)碼' # 收件人郵箱 msg_to = '想要發(fā)給誰(shuí)' # 郵件的正文 content = "我想吃饅頭" # 設(shè)置郵件 msg = MIMEText(content) msg['subject']='你想吃什么' #設(shè)置發(fā)件人 msg['From']= '你隔壁的小王' # 這個(gè)參數(shù)設(shè)置要發(fā)給誰(shuí) msg['To'] = msg_to #連接服務(wù)器 s= smtplib.SMTP_SSL('smtp.qq.com',465) # 登陸我的郵箱 s.login(email_name,passwd) # 發(fā)送郵箱 s.sendmail(email_name,msg_to,msg.as_string()) print("發(fā)送成功")
發(fā)送成功,我們?cè)诮邮盏泥]箱里收到了這封郵件。
怎么發(fā)送帶附件的郵件:
發(fā)送帶附件的郵件,首先要?jiǎng)?chuàng)建MIMEMultipart()
實(shí)例,然后構(gòu)造附件,如果有多個(gè)附件,可依次構(gòu)造,最后利用smtplib.smtp
發(fā)送。
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart ##輸入發(fā)件人郵箱名稱(chēng) email_name = '***' # 輸入用戶授權(quán)碼 passwd = '***' # 收件人郵箱 msg_to = '***' # 郵件的正文 content = "我想吃饅頭" # 設(shè)置郵件 content_part = MIMEText(content) #設(shè)置附件內(nèi)容對(duì)象 msg = MIMEMultipart() msg['subject']='你想吃什么' #設(shè)置發(fā)件人 msg['From']= '你隔壁的小王' # 這個(gè)參數(shù)設(shè)置要發(fā)給誰(shuí) msg['To'] = msg_to #添加附件內(nèi)容 msg.attach(content_part) ? #*********************構(gòu)造附件*********** # 文本類(lèi)型的附件 att1 = MIMEText(open("./data/學(xué)習(xí)目標(biāo).txt",'rb').read(),'plain','utf-8') ? # 添加頭信息,我告訴服務(wù)器,我現(xiàn)在是一個(gè)附件 att1['Content-Type']='application/octet-stream' att1.add_header("Content-Disposition",'attachment',filename=('gbk',"",'學(xué)習(xí)目標(biāo).txt')) # 把內(nèi)容添加到郵件中 msg.attach(att1) ? ? # 圖片附件 att2 = MIMEText(open("小豬豬.gif",'rb').read(),'plain','utf-8') ? # 添加頭信息,我告訴服務(wù)器,我現(xiàn)在是一個(gè)附件 att2['Content-Type']='application/octet-stream' att2.add_header("Content-Disposition",'attachment',filename=('gbk',"",'小豬豬.gif')) # 把內(nèi)容添加到郵件中 msg.attach(att2) #連接服務(wù)器 s= smtplib.SMTP_SSL('smtp.qq.com',465) # 登陸我的郵箱 s.login(email_name,passwd) # 發(fā)送郵箱 s.sendmail(email_name,msg_to,msg.as_string()) print("發(fā)送成功")
可以看到附件發(fā)送成功,但是我們?cè)诠ぷ髦邪l(fā)郵件都是批量發(fā),還涉及到抄送人,那么我們應(yīng)該怎么做那?
?#抄送人設(shè)置 acc_to = ['***] # 這個(gè)參數(shù)設(shè)置要發(fā)給誰(shuí) msg['To'] = ';'.join(msg_to) #設(shè)置抄送人 msg['Cc'] = ';'.join(acc_to)
只需要我們對(duì)抄送人進(jìn)行設(shè)置即可
是不是一下就實(shí)現(xiàn)批量了
帶圖片郵件的發(fā)送:
# 郵件正文 content =""" <html> ? ? <body> ? ? ? ? <h1>今日匯報(bào)</h1> ? ? ? ? <img src='cid:imageid' alt='imageid'> ? ? ? ? <p>哈哈哈</p> ? ? ? ? <img src='cid:imageid2' alt='imageid2'> ? ? ? ? 這是結(jié)尾 ? ? </body> </html> """ ? image_path = { ? ? "imageid":"小豬豬.png", ? ? "imageid2":"***.png" } ? # 這是發(fā)件人的郵箱名稱(chēng) email_name ='***' # 這是是用戶授權(quán)碼,qq郵箱有。 其他郵箱一般直接寫(xiě)你的密碼 passwd = '***' ? # 收件人郵箱 ?多人發(fā)送 msg_to = ['***] # 抄送人 acc_to = [***] from_name ='***' subject ='自動(dòng)化辦公開(kāi)始啦' att_file=['./data/學(xué)習(xí)目標(biāo).txt','評(píng)論詞云圖.png','自動(dòng)化辦公.ipynb','小豬豬.gif','***.jpg'] send_email(email_name = email_name ? ? ? ? ? ?,passwd=passwd ? ? ? ? ? ?,msg_to=msg_to ? ? ? ? ? ?,acc_to=acc_to ? ? ? ? ? ?,content=content ? ? ? ? ? ?,image_html=True ? ? ? ? ? ?,image_path = image_path ? ? ? ? ? ?,subject=subject ? ? ? ? ? ?,from_name = from_name ? ? ? ? ? ?,att_file=att_file )
發(fā)送成功,是不是簡(jiǎn)單又有趣,能大大的增大大家的工作效率,大家快試試把,最后還是想說(shuō),Python np!
到此這篇關(guān)于Python自動(dòng)化辦公之郵件發(fā)送全過(guò)程詳解的文章就介紹到這了,更多相關(guān)Python郵件發(fā)送全過(guò)程詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Pytorch內(nèi)存溢出,Ubuntu進(jìn)程killed的問(wèn)題
這篇文章主要介紹了解決Pytorch內(nèi)存溢出,Ubuntu進(jìn)程killed的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-05-05python深度學(xué)習(xí)tensorflow訓(xùn)練好的模型進(jìn)行圖像分類(lèi)
這篇文章主要為大家介紹了python深度學(xué)習(xí)tensorflow訓(xùn)練好的模型進(jìn)行圖像分類(lèi)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06python xml.etree.ElementTree遍歷xml所有節(jié)點(diǎn)實(shí)例詳解
這篇文章主要介紹了python xml.etree.ElementTree遍歷xml所有節(jié)點(diǎn)實(shí)例詳解的相關(guān)資料,這里附有實(shí)例代碼,需要的朋友可以參考下2016-12-12Python實(shí)現(xiàn)讀取HTML表格 pd.read_html()
這篇文章主要介紹了Python實(shí)現(xiàn)讀取HTML表格 pd.read_html(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07PyCharm搭建Spark開(kāi)發(fā)環(huán)境實(shí)現(xiàn)第一個(gè)pyspark程序
這篇文章主要介紹了PyCharm搭建Spark開(kāi)發(fā)環(huán)境實(shí)現(xiàn)第一個(gè)pyspark程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06分析Python list操作為什么會(huì)錯(cuò)誤
這篇文章主要介紹了分析Python list操作為什么會(huì)錯(cuò)誤,python搞數(shù)據(jù)分析,在很多方面python有著比Matlab更大的優(yōu)勢(shì),下面來(lái)看看文章具體介紹的相關(guān)內(nèi)容吧,需要的朋友可以參考一下2021-11-11python 圖像增強(qiáng)算法實(shí)現(xiàn)詳解
這篇文章主要介紹了python 圖像增強(qiáng)算法實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01