#c# #html #email #outlook
#c# #HTML #Адрес электронной почты #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();
Это нормально в 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. Это правильное направление? Как я могу переформатировать HTML с помощью кода Outlook?
Ответ №1:
Я отвечу на свой собственный вопрос…
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");
}