Outlook Interop-Mail-Formatierungen
Ich habe eine Anwendung in C# geschrieben, verwendet Outlook Interop, um öffnen Sie eine neue E-mail-Nachricht pre-gefüllt mit details, die der Benutzer Bearbeiten kann, bevor Sie manuell senden.
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);
Wenn der Benutzer eine neue Nachricht erstellt manuell die schriftart ist festgelegt Calibri oder welche Schrift hat der user eingestellt als Standard. Das problem ist, dass der text in der automatischen E-Mail wird in Times New Roman Schrift, die wir nicht wollen.
Wenn ich die Quelle eines der gelieferten E-Mails kann ich sehen, dass Outlook hat explizit die schriftart festlegen, in der E-Mail Quelle:
//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";
}
Warum sind die Formate unterschiedlich und wie kann ich die automatische E-Mail an die Benutzer verwenden default-Einstellungen? Ich bin mit der version 11 der interop-Assemblys, wie es ist ein mix von Outlook 2003 und 2007 installiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da es sich um eine HTML-E-Mail, können Sie leicht einbetten, was styling Sie wollen in den eigentlichen HTML-Körper. Ich vermute, dass ist das, was Outlook tut, wenn Sie beim erstellen einer Nachricht aus dem Outlook-GUI.
Ich weiß wirklich nicht, wie man die Benutzer-Einstellungen. Ich schaute durch die Outlook-API (es ist ein seltsames Biest), aber nicht alles sehen können, der Zugriff auf die Standard-message-Eigenschaften an.
Es ist Total frustrierend.
Es hilft nicht, dass, wenn Sie Google das problem, gibt es unzählige Antworten, dass Sie einfach Stil den text in CSS. Jaaaa, fein, wenn Sie die Generierung der vollständigen E-Mail und können Stil/Kontrolle über den gesamten text. Aber in deinem Fall (und uns) die Absicht ist, starten Sie die E-Mail mit einigen einleitenden text und der Endanwender fügt seinen eigenen text. Es ist seine zusätzliche text ist unfehlbar gerendert in Times New Roman.
Die Lösung, die wir gefunden ist, nähern sich dem problem aus einer anderen Richtung. Und das ist fix base/zugrunde liegende Standard in Outlook, um die ausgewählte schriftart anstelle von Times New Roman.
Kann erfolgen durch:
Video hier:
http://www.youtube.com/watch?v=IC2RvfoMFz8
Schätze ich dies nicht helfen, wenn Sie müssen zu kontrollieren oder variieren Sie die schriftart programmgesteuert. Aber für diejenigen, die Arbeit mit Kunden, die einfach nur wollen, dass die Basis E-Mail-schriftart nicht Times New Roman, wenn E-Mails generierten code, dies kann helfen.
Meine Erfahrung hat mir gezeigt, dass das erstellen eines E-Mail NICHT das Standard E-Mail-Einstellungen.
Sind Sie hier GENAU Einstellung newMail.HTMLBody auf einen Wert, anstelle von einfügen von HTML-Code in es.
Ich Wette, wenn Sie untersucht den Inhalt von HTMLBody wäre es mit etwas beginnen, in der es, wie der css-code
JEDOCH, wenn Sie versuchen zu LESEN, von einem der E-Mail-Werten, werden Ihre Benutzer das Sicherheits-popup sagt: "Ein Programm versucht, Zugriff auf..bla bla bla"
Ich lief in dieses, wenn Sie versuchen zu pflegen Signatur des Benutzers, fand nie eine gute Möglichkeit, es zu bekommen, ohne dass die Sicherheitsabfrage.