2011-07-09 20 views
2

次のコードは、画像はGmailなどのウェブメールクライアントから表示されますが、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には、画像を表示するためにクリックする必要がある上部のバーがありました。また、画像のURLを変更しました。あなたは壊れているようです。 – keyboardP

答えて

0

あなたがそのようなメールを送信する場合、電子メールリーダーは、画像を求めるためにregister.cwh.comに行く必要があります。それはregister.cwh.comにいつ、どこから、電子メールが読み込まれているかを示します。 Outlookや他の電子メールクライアントはあなたのプライバシーを保護し、画像を取得しません。私は幾分GMailがそれらをロードすることに驚いている。

画像を添付ファイルとして送信するのが適切です。 Outlookに添付ファイルの画像が表示されます。

+1

OPは、Outlookが画像の読み込みを要求しないと主張します。私は同じコードを(私のコメントに記載されている変更を加えて)テストしました。Outlookは、 '写真をダウンロードするにはここをクリックしてください。あなたのプライバシーを保護するために、Outlookはこのメッセージのいくつかの写真の自動ダウンロードを禁止しました。 ' – keyboardP

+0

私は質問を編集しました。私がリソースがそこにあることを確認したので、イメージへのURLは質問に関連していません。元のホストは私のローカルにマップされていたので、あなたは404を取得していました。 –

+0

埋め込まれていないが外部のサーバーを参照しているイメージでは、たくさんの電子メールが送信されます。この場合、クライアントはイメージをダウンロードするように指示します。しかし、それは問題ではありません。私が言ったように、私はプロンプトを受け取っていない。私は他のクライアントから送られた電子メールにもかかわらず。 –

関連する問題