我试图将图像嵌入到Outlook电子邮件中。基本上,我想每天为生日祝福创建一个Windows服务。服务将向所有员工发送生日祝福。对于每一天,图像模板将会不同,并且每天都会有背景颜色。使用C#和Asp.Net在邮件正文中嵌入图像
我尝试使用的代码片段中this联系,但有两个问题,面临着:
- 当我添加图片到HTML正文,邮件谈到与红十字会的前景(“X”)标记。我已经验证了路径,这方面没有问题。
- 当我向HTML Body添加任何附加内容时,图片将被替换为该图片。不知道我哪里错了。
我附上我试过至今的C#代码:
private void SendHtmlFormattedEmail(string recepientEmail, string subject, string body)
{
string path = Server.MapPath("~/Images/TestLogo.png");
Configuration config = System.Web.Configuration.WebConfigurationManager
.OpenWebConfiguration("~/");
var settings = (System.Net.Configuration.MailSettingsSectionGroup)
config.GetSectionGroup("system.net/mailSettings");
var smtp = settings.Smtp;
System.Net.Configuration.SmtpNetworkElement network = smtp.Network;
var outlookApp = new Microsoft.Office.Interop.Outlook.Application();
var mailitem = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
mailitem.To = network.TargetName;
mailitem.Subject = subject;
Microsoft.Office.Interop.Outlook.Attachment attachment = mailitem.Attachments.Add(path, OlAttachmentType.olEmbeddeditem, null, "Test Image");
string imageCid = "[email protected]";
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", imageCid);
mailitem.BodyFormat = OlBodyFormat.olFormatRichText;
mailitem.HTMLBody = String.Format("<body bgcolor='#E6E6FA'>Dear TestMan,<img [email protected]:{0}\"></body>", imageCid);
//mailitem.Body = body;
mailitem.Display(false);
mailitem.Send();
}
可能的复制[发送电子邮件内嵌图像(http://stackoverflow.com/questions/18358534/send-inline-image-in-email) – Sparrow