Мы написали надстройку VSTO для Outlook 2010/2007.
В какой-то момент наша надстройка должна преобразовать обычные текстовые сообщения электронной почты в HTML из элемента управления на ленте. Это вызывает странное поведение в Outlook:
- Мы используем COM-объект MailItem
- Устанавливаем MailItem.HTMLBody
- Электронная почта конвертируется в 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.