Надстройка C # VSTO - преобразование обычного текста электронной почты в HTML

Мы написали надстройку 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.


person jonathanpeppers    schedule 25.05.2011    source источник


Ответы (1)


У вас есть два пути:

  1. "Нажмите" встроенную кнопку программно через Inspector.CommandBars.ExecuteMso("MessageFormatHtml")
  2. Закройте инспектор, преобразуйте формат сообщения, сохраните электронное письмо и снова откройте его.
person Andrei Smolin - Add-in Express    schedule 21.07.2011