如何在 Python 中访问 Outlook 收件箱中的子文件夹



我在 Outlook 中创建了一个规则,将所有来自特定发件人的传入邮件移动到收件箱中的子文件夹。

Inbox
- Subfolder

我写了一段代码

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6) #6 = Inbox (without mails from the subfolder)
messages = inbox.Items
message = messages.GetLast()
body_content = message.body 
print body_content #Sometimes has parsing error due to different encoding format

我怎样才能

1)阅读收件箱中此特定文件夹中的邮件

2)处理像UnicodeEncodeError这样的错误:"charmap"编解码器无法编码 - 字符映射到

print (u'2109')也会发出此错误。

展望。默认情况下,GetDefaultFolder(6) 是"收件箱"位置。您需要遍历其中的文件夹列表,因此请尝试此操作

inbox = outlook.GetDefaultFolder(6).Folders.Item("Your_Folder_Name")

u'2109'看起来很像UTF-8编码。

所以print(body_content.encode("utf-8"))会做这个伎俩。

outlook = win32com.client.Dispatch('outlook.application')
mapi = outlook.GetNamespace("MAPI")
inbox = mapi.GetDefaultFolder(6).Folders["SubFolder"]
mails = inbox.Items

上述方法也将起作用。

最新更新