2015-11-25 51 views
0

我正在使用Outlook AddIn,我必須獲取Outlook mailbody並將其存儲在可根據需要操作的控件中。 的代碼是這樣的:從Outlook mailbody獲取STANDARD HTML

Outlook.Application oApp = new Outlook.Application(); 
Outlook.Explorer oExplorer = oApp.ActiveExplorer(); 
Outlook.Selection oSelection = oExplorer.Selection; 
foreach (object item in oSelection) 
{ 
htmlEditor1.Html = mailItem.HTMLBody; 
} 

我檢查了使用

oldMailItem.BodyFormat.ToString(); 

這是給olFormatHTML這是標準的HTML不同htmlbody格式。

如何從Outlook獲取標準HTML?

回答

1

Outlook生成的HTML是有效的XHTML標記,並將顯示在瀏覽器中。它包含一些額外的微軟專用標籤,但瀏覽器會忽略這些標籤,並且信息將會(大部分)優雅地降級。

如果您確實想要刪除這些額外的標記並只保留標準HTML,則可以使用解析器(如Html Agility Pack)去除任何具有名稱空間前綴的標記(例如<o:p>)。根據我所見,Outlook使用o:,w:,v:m:分別表示其郵件,文本,形狀和數學標記。

但是,正如我所說的,可能沒有必要刪除這些標籤,因爲它們不會阻止在WebBrowser控件或類似內容中顯示該消息。

+0

史密斯,感謝您的建議。我一定會嘗試敏捷包。是的,你所說的是真實的:我們可以使用webbrowser控件來顯示內容,但我使用的是第三方富文本編輯器控件,它可以編輯內容(彩色,bol,斜體,大小等) 。雖然它是一個富文本編輯器,但在這種情況下,它僅支持Outlook主體的純文本,並且在富文本的情況下不能完全運行。 –