Outlook不呈现html内容

时间:2013-09-05 03:50:19

标签: c#-4.0 html-email outlook-2010

我有以下电子邮件。

enter image description here

运行以下代码后

   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中收到了以下电子邮件。 enter image description here

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

3 个答案:

答案 0 :(得分:1)

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

 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();
                }

答案 1 :(得分:1)

请试试这个,[\ n \ r和&lt; / BR&GT;标签在这里不起作用,需要使用&lt; br&gt; ]

示例代码:

{{1}}

答案 2 :(得分:-2)

mailitem.HTMLBody = body;

会做到这一点。