的Html不显示在Outlook中的邮件了

问题描述:

我有以下的代码,该代码发送电子邮件到不同的收件人在一个循环的Html不显示在Outlook中的邮件了

public void SendMail2(string subject, string body, string emailAddress, string cc) 
    { 

     Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); 
     Microsoft.Office.Interop.Outlook.MailItem mailItem = app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
     mailItem.Subject = subject; 
     mailItem.To = emailAddress; 
     mailItem.CC = cc; 
     mailItem.Body = body; 
     mailItem.SentOnBehalfOfName = "name"; 
     mailItem.Display(false); 
     mailItem.Send(); 
    } 

然而,HTML只是显示为文本与电子邮件的所有标签,而它是完美的我使用

 // Create the Outlook application. 
     Outlook.Application oApp = new Outlook.Application(); 

     // Get the NameSpace and Logon information. 
     Outlook.NameSpace oNS = oApp.GetNamespace("mapi"); 

     // Log on by using a dialog box to choose the profile. 
     oNS.Logon(Missing.Value, Missing.Value, true, true); 

的时候,但我不得不恢复到第一种方法,所以我可以改变的“发件人”地址

任何想法吗?

+0

我不经常使用C#,但我相信必须有一些方法来设置电子邮件的内容类型。将它设置为text/html,你很好去 – 2015-03-31 16:30:54

+0

如下所述,唯一需要的改变是mailItem.HTMLBody = body; – PrOjEkTeD 2015-03-31 16:37:34

尝试使用mailItem.HTMLBody = Body;代替mailItem.Body = body;,然后添加mailItem.BodyFormat = olFormatHTML;

+0

有了这个我得到,”名称'身体'不存在于当前上下文中“和”名称“olFormatHTML'不存在于当前的情况“ – 2015-12-28 19:01:32

mailItem.IsBodyHtml= true; 

会做你想要什么,如果我理解您的问题

+0

有了这个我得到了,“Microsoft.Office.Interop.Outlook.MailItem”不包含'IsBodyHtml'的定义,也没有接受'Microsoft.Office.Interop.Outlook.MailItem'类型的第一个参数的扩展方法'IsBodyHtml'可以找到(你是否缺少使用指令或程序集引用?)“ – 2015-12-28 19:02:41

mailItem.Body =身体;

这是因为您使用Body属性。改为使用HTMLBody

+0

工作就像一个魅力,非常感谢,不能嘀嗒回答了另一个8分钟。 – PrOjEkTeD 2015-03-31 16:36:19

+0

这也是我的工作,所有其他的想法甚至不会为我编译。 – 2015-12-28 19:08:05