學會python自動收發(fā)郵件 代替你問候女友
每天工作忙,學會python自動收發(fā)郵件,代替你問候女友
1、相關(guān)庫介紹
1)yagmail
- Yet Another GMAIL/SMTP client;
- 非常方便的SMTP包,超簡單的Python發(fā)郵件模塊;
- 需要單獨安裝,不包含在Python標準模塊里;
- yagmail官網(wǎng)鏈接
2)keyring
- 從Python訪問系統(tǒng)密鑰環(huán)服務(wù)(即密碼不用直接寫在代碼里);
- 方便、安全地儲存你的密碼;
- 需要單獨安裝,不包含在Python標準模塊里;
- keyring官網(wǎng)鏈接
3)schedule
- 超容易理解的定時任務(wù)執(zhí)行器;
- 需要單獨安裝,不包含在Python標準模塊里;
- schedule官網(wǎng)鏈接
4)imbox
- 簡易的Python IMAP包;
- 進行IMAP相關(guān)的操作;
- 需要單獨安裝,不包含在Python標準模塊里;
- imbox官網(wǎng)鏈接
5)上述庫安裝
pip install yagmail keyring schedule imbox
2、利用python發(fā)送郵件
1)郵件相關(guān)基礎(chǔ)知識
- POP3:Post Office Protocol3的簡稱,即郵局協(xié)議的第3個版本,它規(guī)定怎樣將個人計算機連接到Internet的郵件服務(wù)器和下載電子郵件的電子協(xié)議。
- SMTP:Simple Mail Transfer Protocol,即簡單郵件傳輸協(xié)議。
- IMAP:Internet Mail Access Protocol,即交互式郵件存取協(xié)議,它是跟POP3類似郵件訪問標準協(xié)議之一。
注意:寫代碼發(fā)郵件時一定要注意不能頻繁發(fā)送!容易被當做垃圾郵件被屏蔽?。?/p>
2)python發(fā)送郵件流程(以“QQ郵箱”為例,進行說明)
① 注冊一個QQ郵箱,開通POP3/SMTP/IMAP
具體可參考:python實現(xiàn)QQ郵箱/163郵箱的郵件發(fā)送
python利用smtplib實現(xiàn)QQ郵箱發(fā)送郵件
點擊設(shè)置--》賬戶--》開啟如下服務(wù)

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

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

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

注意:這兩行代碼,是用于存儲你的郵件地址和密碼,當你執(zhí)行這行代碼后。你后面發(fā)送郵件的時候,就只需要顯示給出你賬號即可,而不用再把密碼顯示出來。
④ 發(fā)送第一封測試郵件
import yagmail
# 這里的user填寫的是你的扣扣郵箱賬號,可以看出這里并沒有寫我們的“密碼”
yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")
contents = ["這是第一段正文內(nèi)容","這是第二段正文內(nèi)容"]
# 這里填寫的是你要發(fā)送的人的扣扣郵箱
yag.send("××××××××××@qq.com","這是一封郵件",contents)
"""
特別備注一下:這里可以看到,我們發(fā)送郵件的時候,此時就沒有顯示給出密碼了。
這樣做相對來說較為安全,這就是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辦公自動化\\我創(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辦公自動化\\老婆.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辦公自動化\\我創(chuàng)建的壓縮包.zip'] # 定義一個收件人列表 shoujian_ren = ["×1×@qq.com","×2×@qq.com","×3×@qq.com"] yag.send(shoujian_ren,"這是一封郵件",contents)
⑨ 定時發(fā)送郵件
利用這個功能,你可以定時給你女朋友發(fā)送郵件,表達你的關(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:
# 當代碼完成了這一天的任務(wù)以后,自動結(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)
# 每小時,執(zhí)行一次任務(wù)
schedule.every().hour.do(job)
# 每天上午十點半,執(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)
# 每周三下午一點十五分,執(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"是你的郵箱賬號
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"])
如何讀取未讀郵件,只需要添加一個參數(shù):

如果只想看紅旗標記的郵件,應(yīng)該怎么辦:

如果只想看來自某個人的郵件,應(yīng)該怎么做:

如何按照日期篩選郵件:

設(shè)置標記已讀和刪除郵件:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 使用xlsxwriter循環(huán)向excel中插入數(shù)據(jù)和圖片的操作
這篇文章主要介紹了python 使用xlsxwriter循環(huán)向excel中插入數(shù)據(jù)和圖片的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
python 內(nèi)置庫wsgiref的使用(WSGI基礎(chǔ)入門)
WSGI(web服務(wù)器網(wǎng)關(guān)接口)主要規(guī)定了服務(wù)器端和應(yīng)用程序之間的接口,即規(guī)定了請求的URL到后臺處理函數(shù)之間的映射該如何實現(xiàn)。wsgiref是一個幫助開發(fā)者開發(fā)測試的Python內(nèi)置庫,程序員可以通過這個庫了解WSGI的基本運行原理,但是不能把它用在生產(chǎn)環(huán)境上。2021-06-06
pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實例
這篇文章主要介紹了pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

