这就是我在 Outlook 中工作的方式
private MailMessage report = new MailMessage();
...
if (this.report.IsBodyHtml)
{
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(this.bodyText.ToString(), this.report.BodyEncoding, "text/html");
LinkedResource headerImageLink = new LinkedResource(ConfigReader.GetConfigValue("ImageLocation") + "\\MyBanner.gif", "image/gif");
headerImageLink.ContentId = "headerImageId";
headerImageLink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
LinkedResource footerImageLink = new LinkedResource(ConfigReader.GetConfigValue("ImageLocation") + "\\horizontal_c.gif", "image/gif");
footerImageLink.ContentId = "footerImageId";
footerImageLink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
htmlView.LinkedResources.Add(headerImageLink);
htmlView.LinkedResources.Add(footerImageLink);
this.report.AlternateViews.Add(htmlView);
}
引用上图的 HTML 是:
<IMG src=\"cid:headerImageId\"/>
headerImageId是指 LinkedResource 的 ContentId 。
基本上,您将图像转换为文本以进行传输,在到达客户端时将其重新构成为图像。