C#Office / Outlook 2010工具栏 - HTML电子邮件 - HTMLBody很慢

时间:2011-05-11 20:52:17

标签: c# html email outlook

我编写了一个outlook工具栏,可以从网站下载一些电子邮件模板,然后允许从准备好的html文件创建html电子邮件,这是我用来创建电子邮件的代码:

        MailItem letter = (MailItem)Globals.ThisAddIn.Application.CreateItem(OlItemType.olMailItem);
        letter.HTMLBody = @"<div style=""text-align:center""> <b><br/>Please wait for content to be loaded...</b></div>";            
        letter.Display(false);
        letter.BodyFormat = OlBodyFormat.olFormatHTML;
        letter.HTMLBody = buffer.ToString();

这在前景2003/2007中是可以的,但在2010年这么慢。 我已经意识到Outlook会给电子邮件添加许多糟糕的代码(MSO样式,重新格式化html和许多其他垃圾),这实际上非常慢。我想强迫outlook将垃圾代码添加到保存的HTML文件中,我试过这个:

            // Compile the file and add the MSO Crap
            MailItem letter = (MailItem)Globals.ThisAddIn.Application.CreateItem(OlItemType.olMailItem);
            letter.BodyFormat = OlBodyFormat.olFormatHTML;
            letter.HTMLBody = content;
            content = letter.HTMLBody;

但&#34;内容&#34;变量仍包含最初格式化的HTML。这是正确的方向吗?如何使用outlook代码重新格式化HTML?

1 个答案:

答案 0 :(得分:0)

我会回答我自己的问题......

public static string HtmlToCrap(String HtmlSource)
{
string HtmlFile = "";
System.IO.File.WriteAllText(HtmlFile, HtmlSource);


Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document oDoc = new Microsoft.Office.Interop.Word.Document();

oDoc = oWord.Documents.Add();
oWord.Visible = false;

oDoc = oWord.Documents.Open(HtmlFile);

oDoc.SaveAs(@"C:\WORDhtml.html", Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML);

oDoc.Close(false);
oWord.Quit();

return ReadFile(@"C:\WORDhtml.html");
}