电子邮件HTML文档,嵌入图像使用c#

本文关键字:图像 HTML 文档 电子邮件 | 更新日期: 2023-09-27 18:12:33

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

电子邮件有3个图像类型为System.Drawing.Image。我只需要得到它们在我的HTML格式化字符串

电子邮件HTML文档,嵌入图像使用c#

当使用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>";

转换为base64是正确的,但是仅仅嵌入它是不够的(客户端无法区分base64和纯文本),您需要稍微格式化一下。

看看Buhake的答案,它涵盖了很好的问题(你应该能够从那里得到它):如何在电子邮件中嵌入图像