电子邮件:如何在C# / System.Mail中设置嵌入图像的名称?

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字段为:

Content-Type: image/jpeg; name="my image name.png""

而当前我的电子邮件看起来是这样的:

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

请问有什么办法可以使用C#和System.Mail来实现这个功能吗?

谢谢。

3个回答

10

0
如果在IE中无法显示图像,请使用以下代码: linkedResource = new LinkedResource(src, MediaTypeNames.Image.Jpeg); //abbukmailer.com

-2

关于附件

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

关于RFC

对于链接资源必须有类似的东西


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接