簡體   English   中英

imap_tools 不獲取新電子郵件

[英]imap_tools Not Fetching New Emails

我正在嘗試使用 imap_tools 來獲取新電子郵件。 出於某種原因,它似乎只在我登錄時提取收件箱中已經存在的電子郵件。

誰能看到我做錯了什么?

mailbox.login(email, password, initial_folder='INBOX')
print("Logging in")

for _ in range(50):
    try:
        msgs = mailbox.fetch(AND(new=True, subject='Order')) 
        print("Fetching emails")
        for msg in msgs:
            mail = msg.subject
            print(mail)
    except:
        pass

    sleep(1)

mailbox.logout()
print("Logging out")

第一個錯誤 - 你沒有讀到“新”描述:新 - 設置了 Recent 標志但沒有設置 Seen 標志

第二 - 取而代之的是你可以使用 IDLE 每秒獲取

from imap_tools import MailBox, A

# waiting for updates 60 sec, print unseen immediately if any update
with MailBox('imap.my.moon').login('acc', 'pwd', 'INBOX') as mailbox:
    responses = mailbox.idle.wait(timeout=60)
    if responses:
        for msg in mailbox.fetch(A(seen=False)):
            print(msg.date, msg.subject)
    else:
        print('no updates in 60 sec')

我遇到了同樣的問題,你只需要在獲取 function 之前刷新收件箱:

mailbox.login(email, password, initial_folder='INBOX')
print("Logging in")

for _ in range(50):
    try:
        mailbox.folder.set('INBOX')
        msgs = mailbox.fetch(AND(new=True, subject='Order')) 
        print("Fetching emails")
        for msg in msgs:
            mail = msg.subject
            print(mail)
    except:
        pass

    sleep(1)

mailbox.logout()
print("Logging out")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM