pywin32/win32com 一次无法提取超过 1537 封电子邮件

pywin32/win32com unable to pull more than 1537 emails at a time

我正在与 pywin32/win32com 合作,尝试提取收件箱中所有电子邮件的发件人信息。我的代码有效,但无论 运行 是谁发送的,都只会显示 1537 封电子邮件。我的收件箱默认文件夹中有 2-3k 封电子邮件,一位同事的默认收件箱文件夹中有近 20k 封电子邮件,但我们都 运行 这个脚本并且只看到相同的数字 1537。有人可以吗请告诉我可能导致此限制的原因?

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
rootlist = {}
inbox = outlook.GetDefaultFolder(6) #6 = Inbox (without mails from the subfolder)
messages = inbox.Items
PidTagSenderSmtpAddress = "http://schemas.microsoft.com/mapi/proptag/0x5D01001F"

for i in range(0, messages.Count):
    messaging = inbox.Items[i]
    if messaging.Class == 43 or messaging.Class == 69: #detect if mailitem
        sender = messaging.PropertyAccessor.GetProperty(PidTagSenderSmtpAddress)
        #print(sender)
        if sender in rootlist:
            rootlist[str(sender)][0] = rootlist[str(sender)][0] + 1
        else:
            rootlist[str(sender)] = [1]

永远不要遍历文件夹中的所有项目,使用 Items.Find/FindNextItems.Restrict 查询,例如

@SQL="http://schemas.microsoft.com/mapi/proptag/0x5D01001F" = 'user@domain.demo'