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

本文关键字:HTML 电子邮件 HTMLBody 很慢 工具栏 Office Outlook 2010 | 更新日期: 2023-09-27 17:56:15

我正在编写一个 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();

这在 Outlook 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;

但是"content"变量仍然包含最初格式化的HTML。这是正确的方向吗?如何使用 Outlook 代码重新格式化 HTML?

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

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

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