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

所以这是我的情况。

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

该电子邮件有3个图像,类型为System.Drawing.Image。 我只需要在我的html格式字符串中获取它们。

你是正确的转换为base64,但它不足以嵌入它(客户端无法区分base64到纯文本),你需要格式化它。

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

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