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

时间:2017-01-10 07:21:31

标签: python outlook pywin32

我在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')也会发出此错误。

2 个答案:

答案 0 :(得分:1)

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

所以print(body_content.encode("utf-8"))会做到这一点。

答案 1 :(得分:1)

outlook.GetDefaultFolder(6)默认为“收件箱”位置。你需要遍历其中的文件夹列表,所以试试这个

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