2011-07-06 533 views
6

我將電子郵件及其附件存儲在數據庫中。我正在使用WPF WebBrowser和NavigateToString方法來顯示電子郵件的html正文。它可以工作,但是當電子郵件使用帶有內容標識(cid)的嵌入式圖像時,我無法顯示它們。當我將電子郵件保存在數據庫中時,我將所有嵌入的圖像保存爲附件。我可以在當前用戶的臨時文件中創建和存儲圖像,並用用戶磁盤上的絕對路徑替換cid引用,但我認爲這不是最好的方式...如何使用嵌入式圖像(cid)顯示html電子郵件?

你有什麼想法嗎?

回答

16

我終於找到了一個好辦法:

我更換了所有的圖像使用Base64圖像數據(RFC 2557)這樣的CID引用:

<img src="data:image/png;base64,RAAAtuhhx4dbgYKAAA7...more data....." alt="test"> 

您可以使用下面的代碼來生成BASE64字符串:

string base64Str = Convert.ToBase64String(File.ReadAllBytes(@"C:\Temp\test.png")); 

備註:不使用IE6張貼您的ANS工作

+1

謝謝WER! –

+2

迷人而優雅。附: F * ck IE 6. –

+0

非常優雅,但要小心:[瀏覽器對數據url的大小限制](http://stackoverflow.com/q/695151/87698)。 – Heinzi

相關問題