我正在尝试发送包含嵌入图片的电子邮件。这就是我正在做的......
我有一个tinymce文本编辑器,用户可以选择带有文本的图像。电子邮件发送成功(使用CDOSYS - 电子邮件提供商是zohomail),但电子邮件中没有显示任何图像。
任何人都能告诉我在电子邮件中显示图像需要做什么?
我用来将图像标签转换为链接资源的关键功能如下(使用敏捷包 - Install-Package HtmlAgilityPack -Version 1.6.5):
public string ConvertToHtmlDocument(string originalText)
{
HtmlDocument document = new HtmlDocument();
document.LoadHtml(originalText);
document.DocumentNode.Descendants("img").ToList();
foreach(var d in document.DocumentNode.Descendants("img").ToList())
{
string base64String = "";
string currentSrcValue = d.GetAttributeValue("src", null);
string mimeType = MimeMapping.GetMimeMapping(Server.MapPath(currentSrcValue));
using (Image image = Image.FromFile(Server.MapPath(currentSrcValue)))
{
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
// Convert byte[] to Base64 String
base64String = Convert.ToBase64String(imageBytes);
}
}
//currentSrcValue = currentSrcValue.Split(',')[1];//Base64 part of string
byte[] imageData = Convert.FromBase64String(base64String);
string contentId = Guid.NewGuid().ToString();
LinkedResource inline = new LinkedResource(new MemoryStream(imageData), mimeType);
inline.ContentId = contentId;
inline.TransferEncoding = TransferEncoding.Base64;
d.SetAttributeValue("src", "cid:" + inline.ContentId);
}
return document.DocumentNode.OuterHtml;
}
[ [