我需要发送带有Outlook的外部电子邮件,正文是html,它的工作正常,除了我尝试在我的资源中使用图像包含它并且它不起作用。
我的代码:
var Logo = Properties.Resources.Logo;
oMsg.HTMLBody = oMsg.HTMLBody + "<img src = \"" + Logo + "\">";
没有错误,但也没有图像!有人可以帮我吗?
由于
这里有新信息:
这是我的新代码:
public static byte[] ExtractResource(Bitmap image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, ImageFormat.Jpeg);
if (ms == null)
return null;
byte[] imageByteArray = ms.ToArray();
return imageByteArray;
}
private static string Base64FromByteArray(byte[] image)
{
return Convert.ToBase64String(image);
}
,电话是:
String imgBase64 = Base64FromByteArray(ExtractResource(Properties.Resources.Logo));
oMsg.HTMLBody = oMsg.HTMLBody + "<table><td><img src = \"data:image/jpeg;base64," + imgBase64 + "\" /></td></table>";
没有错误,但我的邮件中仍然没有Logo !!有人在我的代码中看到错误吗?
答案 0 :(得分:2)
您需要使用数据网址方案在HTML正文的IMG标记中内联使用Base64编码的图像。
来自Embed BASE64-Encoded Images Inline In HTML
<img src=”data:<MIMETYPE>;base64,<BASE64_ENCODED_IMAGE>”>
<img src=”data:image/png;base64,iVBORw0KGgoAAAANS… (see source for full base64 encoded image) …8bgAAAAASUVORK5CYII=”>
上述链接中的其他有用链接: