所以这是我的情况。
我需要以HTML格式发送一封电子邮件,其中嵌入了图片。我尝试将我的图像转换为base64,但它不起作用。
该电子邮件有3个图像,类型为System.Drawing.Image。我只需要用我的html格式化字符串来获取它们。
答案 0 :(得分:40)
使用System.Net.Mail
时在电子邮件中嵌入图片的另一种方法是将图片从本地驱动器附加到电子邮件,并为其分配contentID
,然后在此处使用此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 :(得分:2)
你是正确的转换为base64,但它不足以嵌入它(客户端无法区分base64到纯文本),你需要格式化它。
查看Buhake的答案,它涵盖了一般的问题(你应该能够从那里拿走它): How to embed images in email