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
/FindNext
或 Items.Restrict
查询,例如
@SQL="http://schemas.microsoft.com/mapi/proptag/0x5D01001F" = 'user@domain.demo'
我正在与 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
/FindNext
或 Items.Restrict
查询,例如
@SQL="http://schemas.microsoft.com/mapi/proptag/0x5D01001F" = 'user@domain.demo'