我正在尝试将计算机上的图像转换为 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);
这不起作用,它在实际电子邮件中显示为一堆代码
请您参考如下方法:
构建合适的 HTML
由于您似乎是以 HTML 格式发送正文,请尝试构建一个 <img>标记并设置 src将其添加到您的 Base 64 编码图像数据中:
// Set the body of your email to an image that contains your Base64-encoded image
mailItem.HTMLBody = String.Format("<img src='{0}' />",dataUrl);
这应该构建您的 <img>标签符合预期,但是是否会出现将是支持的问题。
检查浏览器和客户端支持
值得注意的是 while most major browsers will support Base64 URLs, many have issues and limitations .此外,一些电子邮件客户端 may not support them either如下所示:
