學(xué)會(huì)python自動(dòng)收發(fā)郵件 代替你問(wèn)候女友
每天工作忙,學(xué)會(huì)python自動(dòng)收發(fā)郵件,代替你問(wèn)候女友
1、相關(guān)庫(kù)介紹
1)yagmail
- Yet Another GMAIL/SMTP client;
- 非常方便的SMTP包,超簡(jiǎn)單的Python發(fā)郵件模塊;
- 需要單獨(dú)安裝,不包含在Python標(biāo)準(zhǔn)模塊里;
- yagmail官網(wǎng)鏈接
2)keyring
- 從Python訪(fǎng)問(wèn)系統(tǒng)密鑰環(huán)服務(wù)(即密碼不用直接寫(xiě)在代碼里);
- 方便、安全地儲(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)上述庫(kù)安裝
pip install yagmail keyring schedule imbox
2、利用python發(fā)送郵件
1)郵件相關(guān)基礎(chǔ)知識(shí)
- POP3:Post Office Protocol3的簡(jiǎn)稱(chēng),即郵局協(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類(lèi)似郵件訪(fǎng)問(wèn)標(biāo)準(zhǔn)協(xié)議之一。
注意:寫(xiě)代碼發(fā)郵件時(shí)一定要注意不能頻繁發(fā)送!容易被當(dāng)做垃圾郵件被屏蔽?。?/p>
2)python發(fā)送郵件流程(以“QQ郵箱”為例,進(jìn)行說(shuō)明)
① 注冊(cè)一個(gè)QQ郵箱,開(kāi)通POP3/SMTP/IMAP
具體可參考:python實(shí)現(xiàn)QQ郵箱/163郵箱的郵件發(fā)送
python利用smtplib實(shí)現(xiàn)QQ郵箱發(fā)送郵件
點(diǎn)擊設(shè)置--》賬戶(hù)--》開(kāi)啟如下服務(wù)

注意:開(kāi)啟過(guò)程中,需要發(fā)送短信驗(yàn)證,此時(shí)會(huì)出現(xiàn)一個(gè)第三方密碼,這個(gè)第三方密碼在使用第三方軟件登陸的時(shí)候,用該密碼代替你的扣扣登陸密碼。

② 找到SMTP和IMAP服務(wù)器的地址

③ 發(fā)送郵件之前,先使用yagmail存儲(chǔ)你的郵件地址和密碼

注意:這兩行代碼,是用于存儲(chǔ)你的郵件地址和密碼,當(dāng)你執(zhí)行這行代碼后。你后面發(fā)送郵件的時(shí)候,就只需要顯示給出你賬號(hào)即可,而不用再把密碼顯示出來(lái)。
④ 發(fā)送第一封測(cè)試郵件
import yagmail
# 這里的user填寫(xiě)的是你的扣扣郵箱賬號(hào),可以看出這里并沒(méi)有寫(xiě)我們的“密碼”
yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")
contents = ["這是第一段正文內(nèi)容","這是第二段正文內(nèi)容"]
# 這里填寫(xiě)的是你要發(fā)送的人的扣扣郵箱
yag.send("××××××××××@qq.com","這是一封郵件",contents)
"""
特別備注一下:這里可以看到,我們發(fā)送郵件的時(shí)候,此時(shí)就沒(méi)有顯示給出密碼了。
這樣做相對(duì)來(lái)說(shuō)較為安全,這就是yagmail庫(kù)的好處。
"""
結(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 = ['親愛(ài)的××老婆',
'我愛(ài)你',
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 = ["親愛(ài)的,記得吃早飯哦!"]
yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com")
yag.send("1127421544@qq.com","這是一封郵件",content)
def afternoon():
content = ["親愛(ài)的,記得吃中飯哦!"]
yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com")
yag.send("1127421544@qq.com","這是一封郵件",content)
def evering():
content = ["親愛(ài)的,記得吃晚飯哦!"]
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)該怎么辦:

如果只想看來(lái)自某個(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ā)郵件庫(kù)yagmail的示例代碼
- Python自動(dòng)化導(dǎo)出zabbix數(shù)據(jù)并發(fā)郵件腳本
- python自動(dòng)發(fā)郵件總結(jié)及實(shí)例說(shuō)明【推薦】
- python smtplib模塊自動(dòng)收發(fā)郵件功能(二)
- Python一行代碼實(shí)現(xiàn)自動(dòng)發(fā)郵件功能
相關(guān)文章
Python命令行中引導(dǎo)用戶(hù)指定選擇文檔示例
這篇文章主要為大家介紹了Python命令行中引導(dǎo)用戶(hù)指定選擇文檔示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
python 使用xlsxwriter循環(huán)向excel中插入數(shù)據(jù)和圖片的操作
這篇文章主要介紹了python 使用xlsxwriter循環(huán)向excel中插入數(shù)據(jù)和圖片的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
3種Python 實(shí)現(xiàn)酷炫進(jìn)度條的實(shí)用方法
這篇文章主要介紹了3種Python 實(shí)現(xiàn)酷炫進(jìn)度條的實(shí)用方法,文章圍繞Python的相關(guān)資料展開(kāi)對(duì)實(shí)現(xiàn)進(jìn)度條的介紹,需要的小伙伴可以參考一下2022-04-04
python 內(nèi)置庫(kù)wsgiref的使用(WSGI基礎(chǔ)入門(mén))
WSGI(web服務(wù)器網(wǎng)關(guān)接口)主要規(guī)定了服務(wù)器端和應(yīng)用程序之間的接口,即規(guī)定了請(qǐng)求的URL到后臺(tái)處理函數(shù)之間的映射該如何實(shí)現(xiàn)。wsgiref是一個(gè)幫助開(kāi)發(fā)者開(kāi)發(fā)測(cè)試的Python內(nèi)置庫(kù),程序員可以通過(guò)這個(gè)庫(kù)了解WSGI的基本運(yùn)行原理,但是不能把它用在生產(chǎn)環(huán)境上。2021-06-06
pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實(shí)例
這篇文章主要介紹了pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python3實(shí)現(xiàn)配置文件差異對(duì)比腳本
這篇文章主要介紹了Python3實(shí)現(xiàn)配置文件差異對(duì)比腳本,本文通過(guò)案例場(chǎng)景分析給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11

