2017-01-10 137 views
0

我創建Outlook中的規則,所有收到的郵件從特定發件人移動到子文件夾在我的Inbox.Like -如何訪問一個子文件夾在Outlook收件箱在Python

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

你試過'body_content.encode('cp1252')'? –

+0

@ Jean-FrançoisFabre - print(u'\ 2109')。encode('cp1252') - 同樣的錯誤 –

+0

然後嘗試'utf-8'。 –

回答

1

u'\2109'看起來很像UTF-8編碼。

所以print(body_content.encode("utf-8"))將做的伎倆。

0

outlook.GetDefaultFolder(6)默認爲「收件箱」位置。你需要遍歷它的文件夾列表,所以試試這個

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

感謝您的代碼片段,它可能會提供一些有限的即時幫助。一個[正確的解釋將大大提高其長期價值](/ meta.stackexchange.com/q/114762/350567)通過顯示*爲什麼*這是一個很好的解決方案,並會使它對未來更有用有其他類似問題的讀者。請[編輯]你的答案以添加一些解釋,包括你所做的假設。 – iBug

相關問題