我想通过 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)
我曾尝试更改默认文件夹,但它无处不在。我做错了什么?
回答1
您需要记住 Outlook 文件夹中可能包含不同类型的项目。因此,您必须为位于同一文件夹中具有不同属性集的不同项目做好准备。出于这个原因,我建议检查项目类型,然后才尝试获取任何属性或调用方法。按照这种方式,您可以处理文件夹中的所有项目。否则,当您调用不存在的属性或方法时,可能会在循环中引发异常,并且它会突然结束其工作。
您可以使用 Outlook 项目的 MessageClass
属性来检查项目类型。有关详细信息,请参阅https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/item-types-and-message-classes。
回答2
尝试获取 Count
,示例
print(messages.Count)
还要检查项目类型,尝试
if i.Class == 43:
print(i.subject)
回答3
电子邮件不可见,因为它们在服务器上!
文件-> 帐户设置-> 帐户设置...-> 双击您的Exchange 帐户-> 将邮件保持离线滑块设置为:全部。