2013-10-25 95 views
0

我正嘗試通過python和com讀取Lotus Notes數據庫中的電子郵件。 (使用PythonWin的和win32com)通過COM讀取Lotus Notes文檔

我可以連接到數據庫和讀取NotesDocument的項目,但

doc = folder.GetFirstDocument() 
doc.GetItemValue('Body') 

返回電子郵件的純文本內容。我可以得到的標題,主題,日期等,但身體是明文。我試圖獲取包含鏈接和其他格式的電子郵件的HTML源代碼。我知道東西在那裏,因爲在Notes中我可以查看 - >顯示 - >頁面源代碼。

我已經試過

doc.GetMIMEEntity('Body') 

但這返回無。

回答

1

嘗試加入這一行,你得在會議結束後右:

session.ConvertMIME = False 

更新:

巴里評論說,它的工作是這樣的:

doc.GetFirstItem("Body").GetMIMEEntity() 
+0

ok - 現在Body只是空白,'u'''。其他值,如主題和標題仍然通過。 –

+1

這是因爲Body項的類型可以是Note Rich Text或MIME。當您關閉轉換時,您需要測試類型,然後使用與NotesRichTextItem關聯的類/方法或與NotesMimeEntity關聯的關係。 –

+1

關閉convertMIME後,請執行bodyItem = doc.GetFirstItem(「Body」),然後檢查bodyItem.Type()。這裏有一個值列表:http://www-01.ibm.com/support/docview.wss?uid=swg21098986請注意,您不能指望某個項目是預期的類型。 Notes是無模式的。 Body幾乎總是Rich Text或MIME,但是如果你正在處理未知的數據源,它可能是任何東西。具體來說,我在極少數情況下看過純文本(1280)和HTML(21)。很大程度上取決於軟件實際創建的消息。理論上,它可以是任何東西。 –

0

正文是一個富文本項目。您將無法訪問正文字段的HTML版本,但您可以使用NotesRichText ...類瀏覽富文本項目。

NotesRichTextNavigator類有一個例子讓你開始。不幸的是,在這個對象中不容易。

+0

有趣 - 我能」 t創建一個導航器對象。 'doc.GetFirstItem('Body')。CreateNavigator()引發一個異常,沒有這樣的屬性CreateNavigator。 –

+0

任何想法爲什麼身體項目不會像一個富文本項目?在文檔中似乎沒有GetFormattedText()或許多其他函數/屬性。 –

+1

它已經很長時間了,因爲我用Python COM調用蓮花筆記後端類......但是,是Python隱式地將您的項目轉換爲字符串,給CreateNavigator()沒有上下文......?我可能會嘗試將其轉換爲MIME並嘗試獲取MIME實體,以查看是否以某種方式返回對象。 – Tim