python - 为什么 win32com 不显示所有电子邮件

我想通过 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 帐户-> 将邮件保持离线滑块设置为:全部。

https://answers.microsoft.com/en-us/outlook_com/forum/all/how-to-access-old-emails-which-are-on-the-server/c2f97172-0191-4734-80e0-88d9488c3594

相似文章

python - 如何在 Windows 上安装 fiona

我正在尝试安装fiona包。我试图通过pip命令和作为轮子安装它,但是它们中的任何一个都失败了,我得到了下面发布的错误。GDAL、shapely和psycopg2已安装。请让我知道如何在Windows...

随机推荐

最新文章