3

C# から画像が埋め込まれたメールを送信しようとしています。このメールを Gmail で受信すると、埋め込まれた画像に適切な名前が付けられていません。代わりに、「noname」と表示されます。以下のスクリーンショットを参照してください。

画像をメールに埋め込む方法は次のとおりです。

foreach (var objimage in images)
{
    var ms = new MemoryStream(objimage.ImageBytes);
    var lr = new LinkedResource(ms, MediaTypeNames.Image.Jpeg);
    lr.ContentId = "Photo_" + (++i).ToString();
    lstImages.Add(lr);

    body += string.Format("<img src='cid:{0}' alt='{1}' name='{1}' title='{1}' />", lr.ContentId, objimage.ImageName);
}

この質問を見て:電子メールに埋め込まれた画像が GMail によって添付ファイルとして表示されないようにするにはどうすればよいですか? - メールの本文を比較すると、Content-Type フィールドを次のように設定する必要があるようです

コンテンツ タイプ: 画像/jpeg; name="私の画像名.png" "

現在、私のメールは次のようになっています。

----boundary_3_d581d04c-d294-4dc5-971e-785a678fbd12
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-ID: <Photo_1>

C# と System.Mail でこれを行う方法はありますか?

ありがとう。

4

3 に答える 3

10

まあ、答えは非常に簡単であることがわかりました:

lr.ContentType.Name = "my image name.jpg";

C#の添付ファイルと同じ画像を含む埋め込み画像とプレーンテキストを含むHTMLメールを送信するためのクレジット

于 2012-04-11T14:50:30.293 に答える
0

画像が IE に入っていない場合は、以下を使用して linkedResource = new LinkedResource(src, MediaTypeNames.Image.Jpeg); を使用します。//abbukmailer.com

于 2012-12-08T11:53:30.033 に答える
-2

アタッチメント用

Content-Disposition: attachment; fileName=<Your file name>

RFCについて

リンクされたリソースの場合、同様のものでなければなりません

于 2012-04-11T14:54:31.390 に答える