Надстройка C # VSTO - конвертирует текстовое электронное письмо в HTML - PullRequest
3 голосов
/ 25 мая 2011

Мы написали дополнение VSTO для Outlook 2010/2007.

В какой-то момент наш плагин должен конвертировать электронные письма в текстовом формате в HTML с ленточного элемента управления. Это вызывает некоторое странное поведение в Outlook:

  1. Мы используем COM-объект MailItem
  2. Устанавливаем MailItem.HTMLBody
  3. Электронная почта преобразуется в HTML, но по какой-то причине шрифт Times New Roman в 10pt

Шрифт по умолчанию в Outlook - это Calibri 11pt, что делает наше преобразование электронной почты довольно странным для пользователя. Он работает, как и ожидалось, когда вы используете существующую кнопку в Outlook для преобразования в HTML, но не при использовании кнопки нашего дополнения.

Итак, мы попробовали следующее:

  • Установить MailItem.BodyFormat заранее
  • Обернул текст нашей электронной почты: <span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'></span> (Мы получили эту идею из просмотра источника новой электронной почты Outlook)

Обертывание тега <span> вокруг тела письма работало так же далеко, как изменение шрифта на Calibri, но размер шрифта оставался на уровне 10pt ...

Есть ли лучший способ сделать это? Еще один обходной путь?

РЕДАКТИРОВАТЬ, рабочий код:

        if (_mailItem.BodyFormat != OlBodyFormat.olFormatHTML)
        {
            _mailItem.GetInspector.CommandBars.ExecuteMso("MessageFormatHtml");
        }

_mailItem - это Microsoft.Office.Interop.Outlook.MailItem.

1 Ответ

3 голосов
/ 21 июля 2011

У вас есть два способа:

  1. «Кликнуть» встроенную кнопку программным способом через Inspector.CommandBars.ExecuteMso("MessageFormatHtml")
  2. Закрыть инспектор, преобразовать формат сообщения, сохранить электронную почту и повторно-открыть его.
...