为什么 win32com 不显示所有电子邮件
Why win32com doesnt show me all emails
我想通过 Outlook 应用程序解析 python 中的电子邮件。 运行 这个代码我只收到了一些我的电子邮件。
import win32com.client
outlook = win32com.client.Dispatch('outlook.application')
mapi = outlook.GetNamespace("MAPI")
inbox= mapi.GetDefaultFolder(6)
messages= inbox.Items
for i in messages:
message=i.subject
print(message)
我试过更改默认文件夹,到处都是。
我做错了什么?
您需要记住,Outlook 文件夹中可能包含不同种类的项目。因此,您必须为位于同一文件夹中具有不同属性集的不同项目做好准备。出于这个原因,我建议检查项目类型,然后才尝试获取任何 属性 或调用方法。按照这种方式,您可以处理文件夹中的所有项目。否则,当您调用 non-existing 属性 或方法时,可能会在循环中抛出异常,它会突然结束其工作。
您可以使用 MessageClass
属性 Outlook 项目来检查项目类型。有关详细信息,请参阅 Item Types and Message Classes。
尝试获取 Count
,示例
print(messages.Count)
还要检查项目类型,尝试
if i.Class == 43:
print(i.subject)
电子邮件不可见,因为它们在服务器上!
文件-> 帐户设置-> 帐户设置...-> 双击您的 Exchange 帐户-> 将邮件保持离线滑块设置为:全部。
找到了 here !
我想通过 Outlook 应用程序解析 python 中的电子邮件。 运行 这个代码我只收到了一些我的电子邮件。
import win32com.client
outlook = win32com.client.Dispatch('outlook.application')
mapi = outlook.GetNamespace("MAPI")
inbox= mapi.GetDefaultFolder(6)
messages= inbox.Items
for i in messages:
message=i.subject
print(message)
我试过更改默认文件夹,到处都是。 我做错了什么?
您需要记住,Outlook 文件夹中可能包含不同种类的项目。因此,您必须为位于同一文件夹中具有不同属性集的不同项目做好准备。出于这个原因,我建议检查项目类型,然后才尝试获取任何 属性 或调用方法。按照这种方式,您可以处理文件夹中的所有项目。否则,当您调用 non-existing 属性 或方法时,可能会在循环中抛出异常,它会突然结束其工作。
您可以使用 MessageClass
属性 Outlook 项目来检查项目类型。有关详细信息,请参阅 Item Types and Message Classes。
尝试获取 Count
,示例
print(messages.Count)
还要检查项目类型,尝试
if i.Class == 43:
print(i.subject)
电子邮件不可见,因为它们在服务器上!
文件-> 帐户设置-> 帐户设置...-> 双击您的 Exchange 帐户-> 将邮件保持离线滑块设置为:全部。
找到了 here !