我需要以 HTML 格式的字符串形式发送一封电子邮件,其中嵌入了图像。我尝试将我的图像转换成base64
,但它不起作用。
该电子邮件有 3 张图片作为 type System.Drawing.Image
。我只需要将它们放在我的 HTML 格式字符串中。
使用时在电子邮件中嵌入图像的另一种方法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>";
您对转换为 base64 是正确的,但是嵌入它是不够的(客户端无法将 base64 区分为纯文本),您需要对其进行一些格式化。
查看 Buhake 的答案,它很好地涵盖了一般问题(您应该可以从那里得到它): 如何在电子邮件中嵌入图像