【问题标题】:Email HTML document, embedding images using c#电子邮件 HTML 文档,使用 c# 嵌入图像
【发布时间】:2013-05-02 18:33:27
【问题描述】:

我需要以 HTML 格式的字符串形式发送一封电子邮件,其中嵌入了图像。我尝试将我的图像转换为base64,但它不起作用。

电子邮件有 3 张图片,类型为 System.Drawing.Image。我只需要将它们放入我的 HTML 格式字符串中。

【问题讨论】:

  • 我相信您可以将 base64 字符串用作img 标签的src 属性。您具体尝试了什么?
  • 部分正确:它可以与 src="data:image/png;base64,YOUR_BASE_64_ENCODED_DATA" 一起使用,但并未得到普遍支持。
  • How to embed images in email 的可能重复项

标签: c# html


【解决方案1】:

使用System.Net.Mail 时在电子邮件中嵌入图像的另一种方法是将本地驱动器中的图像附加到电子邮件并为其分配contentID,然后在图像URL 中使用此contentID

可以这样做:

msg.IsBodyHtml = true;
Attachment inlineLogo = new Attachment(@"C:\Desktop\Image.jpg");
msg.Attachments.Add(inlineLogo);
string contentID = "Image";
inlineLogo.ContentId = contentID;

//To make the image display as inline and not as attachment

inlineLogo.ContentDisposition.Inline = true;
inlineLogo.ContentDisposition.DispositionType = DispositionTypeNames.Inline;

//To embed image in email

msg.Body = "<htm><body> <img src=\"cid:" + contentID + "\"> </body></html>";

【讨论】:

  • +1 非常好的解决方案。我现在可以在剩下的时间里做点别的事情了。 ;)
  • 拯救了我的一天,最干净的解决方案对我有用 +1
  • 优秀。谢谢很多:)
【解决方案2】:

你说的转base64是对的,但是嵌入它是不够的(客户端没有办法区分base64和纯文本),你需要格式化一下。

查看 Buhake 的答案,它很好地涵盖了一般问题(您应该能够从那里得到它): How to embed images in email

【讨论】:

  • Base64 是一个很好的解决方案,但不适用于我的应用程序,因为要发送高质量的图像。我快速浏览了一下,发送一张图片会生成一个 2300 页的文本文件。我通过不将它们嵌入到 html 电子邮件本身来解决了这个问题。我只是将它作为附件发送并在 html 中动态引用它
猜你喜欢
  • 2017-07-04
  • 2011-10-06
  • 2015-03-14
  • 2016-11-06
  • 2019-04-30
  • 2011-07-12
  • 2011-11-09
相关资源
最近更新 更多