2016-12-28 96 views
0

我試圖使用win32模塊進行python並獲取我的電子郵件正文。然而,無論何時我試圖獲得它,我都會遇到任何電子郵件正文的錯誤。我能夠得到消息subject/timerecieved/etc但我似乎無法得到身體。Python Win32無法讀取Outlook電子郵件正文的

import win32com.client 
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
messages = inbox.Items 
message = messages.GetLast() 
body_content = message.body 

--------------------------------------------------------------------------- 
com_error         Traceback (most recent call last) 
<ipython-input-41-bdd6c5734297> in <module>() 
     1 messages = inbox.Items 
     2 message = messages.GetLast() 
----> 3 body_content = message.body#.encode('ascii', 'ignore').decode('ascii') 
     4 #print (body_content) 

C:\Users\e659383\Documents\portableapps\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\win32com\client\dynamic.py in __getattr__(self, attr) 
    509       debug_attr_print("Getting property Id 0x%x from OLE object" % retEntry.dispid) 
    510       try: 
--> 511         ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1) 
    512       except pythoncom.com_error as details: 
    513         if details.hresult in ERRORS_BAD_CONTEXT: 

com_error: (-2147467259, 'Unspecified error', None, None) 

我得到同樣的錯誤任何電子郵件我試圖讓身體。

回答

0

不是100%確定,但也許body應該使用大寫字母B,因爲它似乎是引用了C#屬性。

https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook._mailitem.body.aspx

所以: body_content = message.Body

+0

不幸的是我還收到了同樣的錯誤。 – Neil

+0

你有殺毒軟件嗎? -2147467259轉換爲錯誤代碼:0x80004005。這可能是由防病毒腳本阻止功能導致的。 –

+0

嗯,我們確實安裝了Mcaffee。似乎奇怪的是,它可以專門阻止獲取消息的正文。但我想這可能是有道理的,因爲我創建了一個快速的VB腳本來嘗試獲取消息,它也不會工作... – Neil

相關問題