繁体   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