我在 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
上述方法也将起作用。