Outlook Interop を使用して、手動で送信する前にユーザーが編集できる詳細が事前に入力された新しいメール メッセージを開く C# で記述されたアプリケーションがあります。
var newMail = (Outlook.MailItem)outlookApplication.CreateItem(
Outlook.OlItemType.olMailItem);
newMail.To = "example@exam.ple";
newMail.Subject = "Example";
newMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
newMail.HTMLBody = "<p>Dear Example,</p><p>Example example.</p>";
newMail.Display(false);
同じユーザーが新しいメッセージを手動で作成すると、フォントはCalibriまたはユーザーがデフォルトとして設定したフォントに設定されます。問題は、自動メールのテキストが、望ましくないTimes New Romanフォントで表示されることです。
配信された電子メールの 1 つのソースを表示すると、Outlook が電子メール ソースに明示的にフォントを設定していることがわかります。
// 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";
}
形式が異なるのはなぜですか?また、自動化された電子メールでユーザーの既定の設定を使用するにはどうすればよいですか? Outlook 2003 と 2007 が混在しているため、相互運用アセンブリのバージョン 11 を使用しています。