1 回答

TA貢獻1865條經驗 獲得超7個贊
好吧,這是一個死線程,但我想我會發布我為這個問題找到的“工作”腳本:
import imaplib
import time
import sys
user = '#username'
password = '#password'
server = 'imap.gmail.com'
mailbox = 'Inbox'
while True:
try:
imap = imaplib.IMAP4_SSL(server)
imap.login(user, password)
email_count = imap.select(mailbox, True)
results, data = imap.search(None, '(FROM "#username2" SUBJECT "Test2")')
print('starting search')
ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1]
result, data = imap.fetch(latest_email_id, "(RFC822)")
raw_email = data[0][1]
print(raw_email)
imap.logout()
import Restart_Printer #this is a script that I have set up to restart my
#office printer
sys.exit()
except:
print("no email found, continuing search")
time.sleep(10)
所以我說“工作”的原因是因為這個腳本可以工作,但我不完全確定為什么。原始腳本實際上仍然不會停止運行,但它將停止運行原始腳本調用的 Restart_Printer.py 腳本(我猜測這是因為 Restart_Printer.py 腳本沒有任何 end() 或 sys.exit命令,因此原始腳本可能正在嘗試啟動已經活動的腳本)。
但是,是的,這個腳本基本上會搜索您的電子郵件,直到從特定電子郵件地址(我使用個人備份電子郵件地址)找到特定關鍵字(在本例中主題行是“Test2”)。這里的想法是,當我不在辦公室時,有人給我發一條消息說“嘿,復印機已停止運行(我們使用的垃圾郵件的常見問題)”,我可以將這個快速關鍵字發送到我的電子郵件地址和在我的 CPU 上運行的腳本將檢測到它并為我執行該過程。
使用它作為模板,您應該能夠設置您希望計算機遠程運行的任何其他進程,因此請隨意使用它!
添加回答
舉報