2016-02-14 82 views
0

我试图将图像嵌入到Outlook电子邮件中。基本上,我想每天为生日祝福创建一个Windows服务。服务将向所有员工发送生日祝福。对于每一天,图像模板将会不同,并且每天都会有背景颜色。使用C#和Asp.Net在邮件正文中嵌入图像

我尝试使用的代码片段中this联系,但有两个问题,面临着:

  1. 当我添加图片到HTML正文,邮件谈到与红十字会的前景(“X”)标记。我已经验证了路径,这方面没有问题。
  2. 当我向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(); 

    } 
+0

可能的复制[发送电子邮件内嵌图像(http://stackoverflow.com/questions/18358534/send-inline-image-in-email) – Sparrow

回答

0
  1. 转换图像为base64。或者与网站/工具等https://www.base64-image.de/或编程http://www.c-sharpcorner.com/blogs/convert-an-image-to-base64-string-and-base64-string-to-image

  2. 嵌入它:<img src="data:image/jpeg;base64,IMAGEDATA" />

    编辑的数据类型与转换成基64字符串中的图像字节匹配图像的类型和替换“图象 - 数据” 。的

+0

它没有工作了。然而,我得到它解决了另一个类似的问题在另一个链接在堆栈溢出本身[http://stackoverflow.com/questions/18358534/send-inline-image-in-email] –

相关问题