利用 Window 計劃任務(wù)實現(xiàn)郵箱監(jiān)控
想要接收郵件,以往的操作首先要先登錄到郵箱后,查看是否有新的郵件。如果不想時刻盯著郵箱,又不想錯過新的郵件,那么就可以體驗下利用 Windows 計劃任務(wù)實現(xiàn)郵箱監(jiān)控,當(dāng)有新郵件時,自動給出提醒。
1. 整體思路
- 通過 Python zmail 模塊實現(xiàn)郵件讀??;
- 將最新一封郵件 ID 進(jìn)行保存,第二次執(zhí)行時比對郵件 ID,判斷是否是新郵件;
- 通過 Python pymsgbox 模塊實現(xiàn) window 彈窗提示;
- 配置 Window 計劃任務(wù),每 1 分鐘執(zhí)行一次。
2. 實現(xiàn)步驟
步驟 1:通過 zmail 實現(xiàn)最新郵件接收
import zmail
#獲取最新郵件并打印郵件信息
server = zmail.server('xxxxx@qq.com', 'mdgxgiwpnkspbxgx')
mail = server.get_latest()
zmail.show(mail)
print(mail["id"])
print(mail["from"])
print(mail["to"])
print(mail["subject"])
print(mail["context_text"])
print(mail["context_html"])
代碼解釋:首先通過 zmail 實現(xiàn)最新一封郵件的接收,這里的代碼同前面小節(jié)中接收郵件代碼一致。
步驟 2:新舊郵件比對
想要提示用戶有最新的郵件,就要把最后一封郵件的信息進(jìn)行記錄,在指定時間后,拿著兩封郵件的信息進(jìn)行比對,這里我們使用的郵件 ID(注意 ID 并不唯一,如要確保一定的準(zhǔn)確,可以用 ID 結(jié)合郵件標(biāo)題等多方面信息)
記錄郵件信息我們選擇在這里放在了一個 txt 文件中,每次先讀取再寫入
old_mailid = open('id.txt', 'r').readline()
# 寫入新郵件ID
with open('id.txt', mode='w+', encoding='utf-8') as f:
f.write(str(mail_id))
步驟 3:實現(xiàn) window 彈窗提示
像這種操作早有前人已經(jīng)替我們完成了,這種庫有很多,本小節(jié)采用的是 pymsgbox, 使用前注意通過 pip install pymsgbox 進(jìn)行安裝
先了解下 pymsgbox 彈窗的多種形式
pymsgbox.alert(text='', title='', button='OK')
pymsgbox.confirm(text='', title='', buttons=['OK', 'Cancel'])
pymsgbox.prompt(text='', title='' , default='')
pymsgbox.password(text='', title='', default='', mask='*')
效果依次如下圖所示。




顯然我們這里用不到太復(fù)雜的彈窗,只要一個 alert 就闊以了,代碼如下所示:
#判斷郵件是否是最新
if old_mailid != str(mail_id):
pymsgbox.alert("你有一封新郵件!") # 彈窗提示有新郵件
步驟 4:配置 Window 計劃任務(wù)
前面都完成之后,執(zhí)行 python 文件已經(jīng)可以提示最新郵件了,現(xiàn)在遇到的問題就是如果自動化起來,這里通過配置 Window 計劃任務(wù)的方式來實現(xiàn)。首先創(chuàng)建一個新任務(wù),起個名字 autoemail,配置觸發(fā)器,每 1 分鐘執(zhí)行一次,在操作這里,要執(zhí)行的內(nèi)容是什么呢,顯然 Window 并不能直接執(zhí)行 python,這里創(chuàng)建一個 .bat 文件,在文件中執(zhí)行 Python 文件,在計劃任務(wù)這里指定. bat 文件即可

現(xiàn)在自己手動給郵箱發(fā)一封郵件之后,等待 1 分鐘后,就可以看到 pymsgbox 的彈窗提示了,現(xiàn)在就可以去郵箱里面去查收郵件了,或者也可以直接把郵件內(nèi)容一起顯示出來,這個可以根據(jù)需求來修改代碼就可以了。

?
3. 小結(jié)
本節(jié)課程我們主要學(xué)習(xí)了利用 Window 計劃任務(wù)實現(xiàn)郵箱監(jiān)控。本節(jié)課程的重點如下:
- 了解定時接收最新郵件的實現(xiàn)思路;
- 掌握利用 Window 計劃任務(wù)實現(xiàn)郵箱監(jiān)控定時獲取最新郵件的使用方法。

離島 ·
2025 imooc.com All Rights Reserved |