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