我正在尝试将计算机上的图像转换为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);
这不起作用,它在实际电子邮件中显示为一堆代码
答案 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如下所示: