5

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

该电子邮件有 3 张图片作为 type System.Drawing.Image。我只需要将它们放在我的 HTML 格式字符串中。

4

2 回答 2

41

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

可以这样做:

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>";
于 2013-10-02T14:13:30.967 回答
2

您对转换为 base64 是正确的,但是嵌入它是不够的(客户端无法将 base64 区分为纯文本),您需要对其进行一些格式化。

查看 Buhake 的答案,它很好地涵盖了一般问题(您应该可以从那里得到它): 如何在电子邮件中嵌入图像

于 2013-05-08T13:45:16.587 回答