C# 4.0 Outlook不呈现html内容

C# 4.0 Outlook不呈现html内容,c#-4.0,html-email,outlook-2010,C# 4.0,Html Email,Outlook 2010,我有以下电子邮件消息 在运行以下代码之后 string pattern = "<img src=\"cid.*?</span></p>|Inline image 1.*?</FONT>"; Outlook.Selection mySelection = Globals.ThisAddIn.Application.ActiveExplorer().Selection; Outlook.MailItem mailite

我有以下电子邮件消息

在运行以下代码之后

   string pattern = "<img src=\"cid.*?</span></p>|Inline image 1.*?</FONT>";

        Outlook.Selection mySelection = Globals.ThisAddIn.Application.ActiveExplorer().Selection;
        Outlook.MailItem mailitem = null;

        foreach (Object obj in mySelection)
        {
            if (obj is Outlook.MailItem)
            {
                mailitem = (Outlook.MailItem)obj;                                    
                string body = mailitem.HTMLBody;
                Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.Multiline|RegexOptions.Singleline);
                MatchCollection matchs = reg.Matches(body);
                    foreach(Match match in matchs)
                    {
                        string a = match.Groups[0].Value;
                        mailitem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
                        mailitem.Body = body.Replace(a, string.Empty);                            
                        mailitem.Save();
                    }
                    //mailitem.BodyFormat = Outlook.OlBodyFormat.olFormatPlain;
            }
        }
我在outlook中收到以下电子邮件。


正文文本在浏览器中工作。这意味着当我将正文文本保存在简单的html文件中时,它可以正常工作并显示原始消息。

您必须更改正文格式字符串

 foreach(Match match in matchs)
                {
                    string a = match.Groups[0].Value;
                    mailitem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
                    mailitem.HTMLBody = body.Replace(a, string.Empty);                            
                    mailitem.Save();
                }

将完成此操作。

请尝试此操作,[\n\r和
标记在此不起作用,而需要使用
]

示例代码:

mailitem.HTMLBody = body;
    public void OpenOutlook()
    {
        try
        {

            Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

            oMsg.Subject = "emailSubject";
            oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
            oMsg.BCC = "emailBcc";
            oMsg.To = "emailRecipient";

            string body = "emailMessage";
            //if body contains \n\r replace that into <br>
            body = body.Replace("\r\n", "<br>");
            body = body.Replace("\n", "<br>");

            oMsg.HTMLBody = body;

            oMsg.Display(true); 
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }