亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試獲取重復代碼以在滿足條件后退出(Gmail)

嘗試獲取重復代碼以在滿足條件后退出(Gmail)

HUWWW 2023-09-05 20:26:56
使用以下代碼:import imaplibimport timeuser = '#my username'password = '#my password'server = 'imap.gmail.com'mailbox = 'Inbox'imap = imaplib.IMAP4_SSL(server)imap.login(user, password)while True:    try:        email_count = imap.select(mailbox, True)        results, data = imap.search(None, '(FROM "#TestEmail" SUBJECT "Test")')        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)        print('email found, code will still run but no longer search')        exit()    except:        print("no email found, continuing search")    time.sleep(60)exit()目標是創建一個程序,當我不在辦公室計算機旁時,我可以在后臺運行該程序,以便我可以在需要時運行某些進程。我遇到的問題是代碼:似乎沒有刷新收件箱中的電子郵件列表(即,如果我發送主題應該觸發響應的電子郵件,則不會發生任何事情(盡管如果在我啟動代碼時電子郵件已經在收件箱中,則響應不會發生)發生))。我無法找出一種方法讓代碼在成功完成一次操作后退出。所以基本上我試圖讓它搜索特定的密鑰,然后一旦它找到該密鑰并執行任務,它就會停止搜索該密鑰。
查看完整描述

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 上運行的腳本將檢測到它并為我執行該過程。


使用它作為模板,您應該能夠設置您希望計算機遠程運行的任何其他進程,因此請隨意使用它!


查看完整回答
反對 回復 2023-09-05
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號