2011-08-19 266 views
6

我創建了一個C#Webform程序,用於向我的網頁上的客戶發送提醒電子郵件。將圖像嵌入電子郵件

它在Outlook中正常工作。和FireFox上的Gmail。

我剛剛發現(我不使用IE瀏覽器),在IE 8在Gmail中不顯示圖像?

它只是一個X和ALT文本。

我無法弄清楚爲什麼IE 8和Gmail不會dispaly圖像和我與它起到了一點。

在C#:

LinkedResource emo2 = new LinkedResource(logoPath); 
emo2.ContentId = "logo"; 
emo2.TransferEncoding = System.Net.Mime.TransferEncoding.Base64; 
htmlView.LinkedResources.Add(emo2); 

,在我的HTML文件:

<img id="header" alt="MyWebpage" src="cid:logo" /> 

通過電子郵件發送簡訊與所有客戶可依使用如此令人沮喪。但我從來沒有想過Gmail會成爲我的問題!

+0

生成的MIME結構是什麼樣的? – tripleee

回答

0

嘗試增加這LinkedResource結束:

logoPath, MediaTypeNames.Image.Jpeg); 

假設您的標誌當然是一個JPG! 另外,是htmlView和AlternateView?

+0

yes htmlview是一個備用視圖...其實一個PNG,但生病嘗試,謝謝! (最糟糕的情況會轉換爲JPG格式) – michael

+0

我把它轉換成JPG格式,但它仍然顯示爲與IE的Gmail中的X :( – michael

+0

哦,這是一個恥辱;這是你之前發佈的代碼和一些代碼之間的唯一區別我們用於生產。 –

3

我們也有類似的要求,到HTML的電子郵件,而不是鏈接到託管在我們的網站上的圖像中嵌入圖像。主要區別在於用戶不需要在其電子郵件客戶端中單擊「顯示所有圖像」,即電子郵件應立即呈現給收件人。

我們創建了嵌入式圖像和它在Outlook和其他一些電子郵件客戶端偉大的工作,但我們發現,一些電子郵件客戶端不喜歡他們,因爲你已經與Gmail注意到。經過幾天的研究和嘗試不同的事情,我們得出結論,沒有銀彈讓您的電子郵件正確地顯示它是所有主要電子郵件客戶端中的嵌入式圖像。

我們結算,託管只是我們網站上的圖像(這意味着用戶獲得了「顯示所有圖像」按鈕......),並使用類似:

<img src="http://website/image.jpg"/> 

如果你有耐心,您可以嵌入除某些地址(例如@ gmail.com)之外的所有電子郵件地址的圖像,但是我的偏好是一致性,因此只是鏈接到圖像。

0

很晚的答案,但我敢打賭,你都嵌入JPG不是RBG JPG,它可能CMYK。

0

我通過觀察與正在對IE嵌入圖像現有的電子郵件想通了這個問題。顯然IE對需要顯示的內容非常挑剔。即使我正在添加內容類型

var imgContentType = new ContentType(MediaTypeNames.Image.Jpeg); 

它沒有出現在IE中。然後我看了看現有的電子郵件,其中的圖像的內容類型爲「image/png; name =」image1.png「,一旦我將該名稱添加到內容類型中,圖像就開始顯示。圖像擴展名,以知道如何處理圖像src

相關問題