2015-03-31 64 views
4

我有以下的代碼,該代碼發送電子郵件到不同的收件人在一個循環的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

回答

3

嘗試使用mailItem.HTMLBody = Body;代替mailItem.Body = body;,然後添加mailItem.BodyFormat = olFormatHTML;

+0

有了這個我得到,」名稱'身體'不存在於當前上下文中「和」名稱「olFormatHTML'不存在於當前的情況「 – 2015-12-28 19:01:32

3
mailItem.IsBodyHtml= true; 

會做你想要什麼,如果我理解您的問題

+0

有了這個我得到了,「Microsoft.Office.Interop.Outlook.MailItem」不包含'IsBodyHtml'的定義,也沒有接受'Microsoft.Office.Interop.Outlook.MailItem'類型的第一個參數的擴展方法'IsBodyHtml'可以找到(你是否缺少使用指令或程序集引用?)「 – 2015-12-28 19:02:41

4

mailItem.Body =身體;

這是因爲您使用Body屬性。改爲使用HTMLBody

+0

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

+0

這也是我的工作,所有其他的想法甚至不會爲我編譯。 – 2015-12-28 19:08:05

相關問題