2011-05-18 138 views
1

爲什麼當我發送HTML郵件,它看起來像:了與發送HTML電子郵件

enter image description here

但初始頁面是:

enter image description here

這裏是代碼:

MailMessage message = new MailMessage(); 
       message.IsBodyHtml = true; 
       message.Subject = subject; 
       message.Body = body; 

       foreach (MailAddress recipient in recipients) 
       { 
        message.To.Add(recipient); 
       } 
       if (message.To.Count > 0) 
       { 
        SmtpClient smtp = new SmtpClient(); 
        smtp.Send(message); 
        return true; 
       } 

Html文件包含頭部的CSS。 http://pastebin.com/r5V6X4Ld

+0

無法看到圖像 – 2011-05-18 09:55:02

+0

是什麼內容' body'? – 2011-05-18 09:55:39

+0

@mahesh:我可以...也許被你的代理攔截了嗎? – 2011-05-18 09:56:31

回答

1

我假設body變量只包含HTML代碼,但不包含CSS或圖像,因爲它們都是單獨的文件。
基本上,您需要將圖像附加到郵件並更改正文的HTML代碼以指向正確的位置。有關更多信息和示例代碼,請參閱here

這也可能會有所幫助:http://www.alistapart.com/articles/cssemail/

問題:

一些客戶端渲染我的電子郵件沒有任何風格。我首先將其歸因於樣式的剝離,但我後來發現這些樣式在源代碼中清晰可見。隨後我花了很多時間試圖揭露罪魁禍首,測試了無數版本的電子郵件。唉,這個問題在我的鼻子下:風格沒有被剝離 - 名稱前的點(。)是。因此,「.Feature {}」成爲「Feature {}」,導致無意義的樣式定義。

解決方案:

我用類選擇,保證每個風格會以一個字母,而不是一個點開始。因此「.Feature {}」將變成「td.Feature {}」或「div.Feature {}」(取決於應用程序)。有點平凡的修復,但有效和(再次)符合。

+0

NO。 Html文件包含css風格。 – Neir0 2011-05-18 09:59:08

+0

@ Neir0:請參閱更新。 – 2011-05-18 10:01:14

+0

@Daniel Hilgarth謝謝,但圖像不是問題。問題是該頁面看起來像css不加載。 – Neir0 2011-05-18 10:03:33

0

你有完整的路徑即www.yourdomain/imagename.jpg等指你的形象,也得給班級爲內嵌樣式