Tengo una aplicación escrita en C# que usa Outlook Interop para abrir un nuevo mensaje de correo lleno de detalles que el usuario puede editar antes de enviarlo manualmente.Outlook Interop, Formato de correo
var newMail = (Outlook.MailItem)outlookApplication.CreateItem(
Outlook.OlItemType.olMailItem);
newMail.To = "[email protected]";
newMail.Subject = "Example";
newMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
newMail.HTMLBody = "<p>Dear Example,</p><p>Example example.</p>";
newMail.Display(false);
Cuando el mismo usuario crea un nuevo mensaje manualmente la fuente se establece en Calibri o el que sea la fuente que el usuario ha establecido como su defecto. El problema es que el texto en el correo electrónico automático aparece en fuente Times New Roman que no queremos.
Si me vista de origen de uno de los correos electrónicos entregados puedo ver que Outlook ha establecido explícitamente la fuente en la fuente del correo electrónico:
// Automated
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";
}
// Manual
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
}
Por qué son los formatos diferentes y cómo puedo obtener el correo electrónico automatizado para usar la configuración predeterminada de los usuarios? Estoy usando la versión 11 de los ensamblados de interoperabilidad, ya que hay una mezcla de Outlook 2003 y 2007 instalada.
No es realmente lo que quería ... ¡pero probablemente sea tan bueno como lo que voy a conseguir por ahora! –