Skip to main content
 首页 » 编程设计

c#之在我的计算机上将图像保存为 HTML 以嵌入电子邮件

2024年02月05日32del

我正在尝试将计算机上的图像转换为 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如下所示: