學(xué)會(huì)python自動(dòng)收發(fā)郵件 代替你問候女友
每天工作忙,學(xué)會(huì)python自動(dòng)收發(fā)郵件,代替你問候女友
1、相關(guān)庫介紹
1)yagmail
- Yet Another GMAIL/SMTP client;
- 非常方便的SMTP包,超簡(jiǎn)單的Python發(fā)郵件模塊;
- 需要單獨(dú)安裝,不包含在Python標(biāo)準(zhǔn)模塊里;
- yagmail官網(wǎng)鏈接
2)keyring
- 從Python訪問系統(tǒng)密鑰環(huán)服務(wù)(即密碼不用直接寫在代碼里);
- 方便、安全地儲(chǔ)存你的密碼;
- 需要單獨(dú)安裝,不包含在Python標(biāo)準(zhǔn)模塊里;
- keyring官網(wǎng)鏈接
3)schedule
- 超容易理解的定時(shí)任務(wù)執(zhí)行器;
- 需要單獨(dú)安裝,不包含在Python標(biāo)準(zhǔn)模塊里;
- schedule官網(wǎng)鏈接
4)imbox
- 簡(jiǎn)易的Python IMAP包;
- 進(jìn)行IMAP相關(guān)的操作;
- 需要單獨(dú)安裝,不包含在Python標(biāo)準(zhǔn)模塊里;
- imbox官網(wǎng)鏈接
5)上述庫安裝
pip install yagmail keyring schedule imbox
2、利用python發(fā)送郵件
1)郵件相關(guān)基礎(chǔ)知識(shí)
- POP3:Post Office Protocol3的簡(jiǎn)稱,即郵局協(xié)議的第3個(gè)版本,它規(guī)定怎樣將個(gè)人計(jì)算機(jī)連接到Internet的郵件服務(wù)器和下載電子郵件的電子協(xié)議。
- SMTP:Simple Mail Transfer Protocol,即簡(jiǎn)單郵件傳輸協(xié)議。
- IMAP:Internet Mail Access Protocol,即交互式郵件存取協(xié)議,它是跟POP3類似郵件訪問標(biāo)準(zhǔn)協(xié)議之一。
注意:寫代碼發(fā)郵件時(shí)一定要注意不能頻繁發(fā)送!容易被當(dāng)做垃圾郵件被屏蔽??!
2)python發(fā)送郵件流程(以“QQ郵箱”為例,進(jìn)行說明)
① 注冊(cè)一個(gè)QQ郵箱,開通POP3/SMTP/IMAP
具體可參考:python實(shí)現(xiàn)QQ郵箱/163郵箱的郵件發(fā)送
python利用smtplib實(shí)現(xiàn)QQ郵箱發(fā)送郵件
點(diǎn)擊設(shè)置--》賬戶--》開啟如下服務(wù)
注意:開啟過程中,需要發(fā)送短信驗(yàn)證,此時(shí)會(huì)出現(xiàn)一個(gè)第三方密碼,這個(gè)第三方密碼在使用第三方軟件登陸的時(shí)候,用該密碼代替你的扣扣登陸密碼。
② 找到SMTP和IMAP服務(wù)器的地址
③ 發(fā)送郵件之前,先使用yagmail存儲(chǔ)你的郵件地址和密碼
注意:這兩行代碼,是用于存儲(chǔ)你的郵件地址和密碼,當(dāng)你執(zhí)行這行代碼后。你后面發(fā)送郵件的時(shí)候,就只需要顯示給出你賬號(hào)即可,而不用再把密碼顯示出來。
④ 發(fā)送第一封測(cè)試郵件
import yagmail # 這里的user填寫的是你的扣扣郵箱賬號(hào),可以看出這里并沒有寫我們的“密碼” yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com") contents = ["這是第一段正文內(nèi)容","這是第二段正文內(nèi)容"] # 這里填寫的是你要發(fā)送的人的扣扣郵箱 yag.send("××××××××××@qq.com","這是一封郵件",contents) """ 特別備注一下:這里可以看到,我們發(fā)送郵件的時(shí)候,此時(shí)就沒有顯示給出密碼了。 這樣做相對(duì)來說較為安全,這就是yagmail庫的好處。 """
結(jié)果如下:
⑤ 發(fā)送帶HTML樣式的郵件
import yagmail yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com") contents = ['這是第一段正文內(nèi)容', '這是第二段正文內(nèi)容', '百度網(wǎng)站'] yag.send("××××××××××@qq.com","這是一封郵件",contents)
結(jié)果如下:
⑥ 發(fā)送帶附件的郵件
import yagmail yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com") contents = ['這是第一段正文內(nèi)容', '這是第二段正文內(nèi)容', '百度網(wǎng)站', 'G:\\6Tipdm\\7python辦公自動(dòng)化\\我創(chuàng)建的壓縮包.zip'] yag.send("××××××××××@qq.com","這是一封郵件",contents)
結(jié)果如下:
⑦ 發(fā)送帶嵌入圖片的郵件
import yagmail yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com") contents = ['親愛的××老婆', '我愛你', yagmail.inline('G:\\6Tipdm\\7python辦公自動(dòng)化\\老婆.png')] yag.send("××××××××××@qq.com","這是一封郵件",contents)
⑧ 群發(fā)郵件
import yagmail yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com") contents = ['這是第一段正文內(nèi)容', '這是第二段正文內(nèi)容', '百度網(wǎng)站', 'G:\\6Tipdm\\7python辦公自動(dòng)化\\我創(chuàng)建的壓縮包.zip'] # 定義一個(gè)收件人列表 shoujian_ren = ["×1×@qq.com","×2×@qq.com","×3×@qq.com"] yag.send(shoujian_ren,"這是一封郵件",contents)
⑨ 定時(shí)發(fā)送郵件
利用這個(gè)功能,你可以定時(shí)給你女朋友發(fā)送郵件,表達(dá)你的關(guān)心,以免自給由于工作忙,而忽略了自己的女朋友。
import time import schedule import yagmail import datetime def morning(): content = ["親愛的,記得吃早飯哦!"] yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com") yag.send("1127421544@qq.com","這是一封郵件",content) def afternoon(): content = ["親愛的,記得吃中飯哦!"] yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com") yag.send("1127421544@qq.com","這是一封郵件",content) def evering(): content = ["親愛的,記得吃晚飯哦!"] yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com") yag.send("1127421544@qq.com","這是一封郵件",content) schedule.every().day.at("07:30").do(morning) schedule.every().day.at("11:30").do(afternoon) schedule.every().day.at("17:30").do(evering) while True: # 當(dāng)代碼完成了這一天的任務(wù)以后,自動(dòng)結(jié)束任務(wù) if datetime.datetime.now().strftime("%H:%M") == "17:31": break schedule.run_pending() time.sleep(1) """ # 每十分鐘,執(zhí)行一次任務(wù) schedule.every(10).minutes.do(job) # 每小時(shí),執(zhí)行一次任務(wù) schedule.every().hour.do(job) # 每天上午十點(diǎn)半,執(zhí)行一次任務(wù) schedule.every().day.at("10:30").do(job) # 每5-10鐘,執(zhí)行一次任務(wù) schedule.every(5).to(10).minutes.do(job) # 每周一,執(zhí)行一次任務(wù) schedule.every().monday.do(job) # 每周三下午一點(diǎn)十五分,執(zhí)行一次任務(wù) schedule.every().wednesday.at("13:15").do(job) # 每分鐘的第十七秒,執(zhí)行一次任務(wù) schedule.every().minute.at(":17").do(job) """
3、利用python讀取郵件
代碼如下:
from imbox import Imbox import keyring # "1127421544@qq.com"是你的郵箱賬號(hào) pwd = keyring.get_password("yagmail", "1127421544@qq.com") # "imap.qq.com"是你的IMAP郵箱服務(wù)器地址 with Imbox("imap.qq.com","1127421544@qq.com",pwd,ssl=True) as imbox: all_inbox_messages = imbox.messages() for uid, message in all_inbox_messages: print(message.subject) print(message.body["plain"])
如何讀取未讀郵件,只需要添加一個(gè)參數(shù):
如果只想看紅旗標(biāo)記的郵件,應(yīng)該怎么辦:
如果只想看來自某個(gè)人的郵件,應(yīng)該怎么做:
如何按照日期篩選郵件:
設(shè)置標(biāo)記已讀和刪除郵件:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python自動(dòng)發(fā)郵件腳本
- Python實(shí)現(xiàn)向QQ群成員自動(dòng)發(fā)郵件的方法
- python smtplib模塊自動(dòng)收發(fā)郵件功能(一)
- python自動(dòng)發(fā)郵件庫yagmail的示例代碼
- Python自動(dòng)化導(dǎo)出zabbix數(shù)據(jù)并發(fā)郵件腳本
- python自動(dòng)發(fā)郵件總結(jié)及實(shí)例說明【推薦】
- python smtplib模塊自動(dòng)收發(fā)郵件功能(二)
- Python一行代碼實(shí)現(xiàn)自動(dòng)發(fā)郵件功能
相關(guān)文章
解決python3中自定義wsgi函數(shù),make_server函數(shù)報(bào)錯(cuò)的問題
下面小編就為大家分享一篇解決python3中自定義wsgi函數(shù),make_server函數(shù)報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-11-11Python的pytest測(cè)試框架中fixture的使用詳解
這篇文章主要介紹了pytest中fixture的使用詳解,pytest是一個(gè)非常成熟的全功能的Python測(cè)試框架,能夠支持簡(jiǎn)單的單元測(cè)試和復(fù)雜的功能測(cè)試,還可以用來做selenium/appnium等自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試,需要的朋友可以參考下2023-07-07深入講解Python中面向?qū)ο缶幊痰南嚓P(guān)知識(shí)
這篇文章主要介紹了深入講解Python中面向?qū)ο缶幊痰南嚓P(guān)知識(shí),是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05