5

画像が埋め込まれた HTML 形式の電子メールを送信するアプリケーションがあります。電子メールは、さまざまなデスクトップ/Web クライアントで完璧に見えます。HTML メールをサポートする携帯電話 (iPhone、WinMo 6.1 でテスト済み) でメールを表示すると、画像は赤い「X」として表示されます。他のすべての HTML は正しく表示されています。明確にするために、この問題はモバイル クライアントでのみ発生しており、デスクトップ クライアントでは発生していません。

画像を埋め込むコードは完全に機能しており、問題はないと思いますが、念のため以下にいくつかの簡単なサンプル コードを含めました。

MailMessage mail = new MailMessage();
            mail.To.Add("123@myemail.com");
            mail.From = new MailAddress("456@ myemail.com");
            mail.Subject = "Image sample - fails in mobile clients";
            string Body = "Sample email text<img src=\"cid:imageId\" />";

            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(Body, null, "text/html");
            LinkedResource lr = new LinkedResource("myImage.jpg");
            lr.ContentId = "imageId";
            htmlView.LinkedResources.Add(lr);

            mail.AlternateViews.Add(htmlView);
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Send(mail);

埋め込み画像がモバイル クライアントに表示されない理由を知っている人はいますか? さらに良いことに、画像を正しく表示するにはどうすればよいですか?

編集: Outlook 2007 (およびそれ以降) が画像付きの電子メールを送信する場合、画像はモバイル クライアントとデスクトップ クライアントで正しく表示されます。HTML 形式の電子メールに画像が埋め込まれて送信された場合、画像はモバイル クライアントでは正しく表示されませんが、デスクトップ クライアントでは正しく表示されます。

Outlook は、自信を持って表示される画像を含む電子メールを送信できますが、(埋め込み画像を使用して) Web アプリを介して送信すると、モバイル クライアントは画像をブロックします。2つの違いは何ですか?

4

4 に答える 4

3

私はついにこの問題に対する答えを見つけました: LinkedResource のオプションの ContentType が設定されていませんでした。デスクトップクライアントは理解できる

MSDNから:

ContentType クラスの情報は、電子メールを表示するソフトウェアが適切な方法でコンテンツを表示できるように、電子メール メッセージに含まれるデータを記述するために使用されます。ContentType は、添付ファイル内のコンテンツの種類を指定するために Attachment クラスと共に使用されます。

Outlook は添付画像の表示方法を理解できましたが、モバイル クライアントにはさらに多くの情報が必要でした。

于 2010-03-18T13:13:23.913 に答える
2

これは、他のユーザーが言ったように、設定の問題であり、既知のバグです。

アリソンさん、画像のバイナリが携帯電話に届いたという確信はありますか? 他のユーザーが述べたように、設定の問題は、データ プランが制限されているモバイル クライアントにかさばる画像を不注意にダウンロードすることを減らすためのデフォルトである可能性があります。

既知の問題については、を参照してください。

http://www.google.com/support/forum/p/Google+Mobile/thread?tid=6470e77d94f0315c&hl=en

ありがとう、そして幸運を…

編集:おっと...これは古い質問です;)

于 2010-03-12T01:07:26.807 に答える
0

ここで良い答え:

string attachmentPath = Environment.CurrentDirectory + @"\test.png";
Attachment inline = new Attachment(attachmentPath);
inline.ContentDisposition.Inline = true;
inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
inline.ContentId = contentID;
inline.ContentType.MediaType = "image/png";
inline.ContentType.Name = Path.GetFileName(attachmentPath);

message.Attachments.Add(inline);

私はちょうどそれをテストし、それは魅力のように働きました. もちろん、ファイルの種類を特定する必要があります。メディアタイプのリストは次のとおりです。

http://www.fileformat.info/info/mimetype/image/index.htm

于 2016-12-22T14:42:25.867 に答える
0

ほとんどの場合、スマートフォンの設定がデフォルトでメール画像のダウンロードを防止するように設定されていることが原因です。ほとんどの電話では、デフォルトの動作では、特定のメールに添付された画像を見たい場合、通常はメール クライアントのボタンまたは設定によって、画像を手動でダウンロードする必要があります。デスクトップとラップトップの Outlook 設定でも同じ設定を使用しています。ほとんどの電子メール クライアントにとって、これはスパム対策です。電話の場合、不要な使用から帯域幅を節約することもできます. クライアントが常にデフォルトで画像を表示しているとは考えないでください。

于 2009-10-05T18:37:56.243 に答える