2011-07-09 78 views
2

以下代碼會生成一封電子郵件,通過Gmail等webmail客戶端可以看到該圖像,但通過thunderbird或Outlook客戶端不可見。這些客戶端中可以看到斷開的鏈接,並且由於某種原因,它不會提示我加載圖像。當同一封電子郵件從其他客戶端轉發時,它會提示我加載圖像,並且所有內容都按照預期運行。通過SmtpClient發送的電子郵件不會顯示圖像

class Program 
{ 
    static void Main(string[] args) 
    { 
     var mesg = new MailMessage("[email protected]","[email protected]"); 
     mesg.Body = "<img src='http://localhost/images/bangs.JPG' />"; 
     mesg.Subject = "Image Spike Test"; 
     mesg.IsBodyHtml = true; 
     var client = new SmtpClient("localhost"); 
     client.Send(mesg); 

    } 
} 

以下是此代碼生成的電子郵件源。

MIME-Version: 1.0 
From: [email protected] 
To: [email protected] 
Date: 9 Jul 2011 09:25:08 -0500 
Subject: Image Spike Test 
Content-Type: text/html; charset=us-ascii 
Content-Transfer-Encoding: quoted-printable 

<img src=3D'http://localhost/images/bangs.JPG' /> 
+1

您的代碼適用於我,但我更改了SMTP客戶端的詳細信息以指向Gmail服務器。 Outlook的頂部需要點擊才能顯示圖像。另外,我更改了圖片網址;你的人似乎被打破了。 – keyboardP

回答

0

好吧,如果你發送郵件那樣,您的電子郵件讀者將不得不去register.cwh.com索要圖像。這將告訴register.cwh.com何時以及從何處讀取電子郵件。 Outlook和其他電子郵件客戶端保護您的隱私並不檢索圖像。我有些驚訝GMail會加載它們。

適當的修復方法是將圖像作爲附件發送。 Outlook將顯示來自附件的圖像。

+1

OP聲稱Outlook不會提示加載圖像。我測試了相同的代碼(在我的評論中提到的更改),Outlook提供了頂部的常用欄,它說'點擊此處下載圖片。爲了幫助保護您的隱私,Outlook阻止了此消息中的一些圖片的自動下載「 – keyboardP

+0

我已編輯該問題。圖片的網址與問題無關,因爲我已驗證資源在那裏。原來的主機映射到我的本地,這就是爲什麼你得到404的。 –

+0

大量的電子郵件與未嵌入的圖像一起發送,但是可以引用外部服務器。發生這種情況時,客戶端會提示您下載圖像。但這不是問題。就像我說的,我沒有收到提示。即使我從其他客戶發送的電子郵件。 –

相關問題