将图像保存在我的计算机上作为HTML嵌入电子邮件?

时间:2016-04-29 16:15:53

标签: c# html .net

我正在尝试将计算机上的图像转换为HTML并将其嵌入到电子邮件中:

这是我到目前为止所尝试的:

chart1.SaveImage("C:\\My Chart\\mychart.png", ChartImageFormat.Png);


OutlookApp outlookApp = new OutlookApp();
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);

mailItem.Subject = "This is the subject";
var bytes = File.ReadAllBytes("C:\\My Chart\\mychart.png");
var b64String = Convert.ToBase64String(bytes);
var dataUrl = "data:image/png;base64," + b64String;
mailItem.HTMLBody = dataUrl ;


//Set a high priority to the message
mailItem.Importance = OlImportance.olImportanceHigh;
mailItem.To = "email@email.com";
mailItem.Display(false);

这不起作用,它在实际电子邮件中显示为一堆代码

1 个答案:

答案 0 :(得分:4)

构建适当的HTML

由于您似乎将正文作为HTML发送,请尝试构建No match found for this input: href="http://softuni.bg">SoftUni</a> 标记,并将其<img>设置为Base 64编码的图像数据:

src

这应该按照预期构建您的// Set the body of your email to an image that contains your Base64-encoded image mailItem.HTMLBody = String.Format("<img src='{0}' />",dataUrl); 标记,但是如果出现与否则将是一个支持问题。

检查浏览器和客户端支持

值得注意的是while most major browsers will support Base64 URLs, many have issues and limitations。此外,一些电子邮件客户端may not support them either如下所示:

enter image description here