Tôi có một ứng dụng được viết bằng C# sử dụng Outlook Interop để mở một thư mới chứa đầy các chi tiết mà người dùng có thể chỉnh sửa trước khi gửi thủ công.Outlook Interop, Mail Formatting
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);
Khi người dùng cùng tạo ra một thông điệp mới bằng tay font được thiết lập để Calibri hoặc bất cứ phông chữ người dùng đã thiết lập như mặc định của họ. Vấn đề là văn bản trong email tự động xuất hiện trong phông chữ Times New Roman mà chúng tôi không muốn.
Nếu tôi xem nguồn gốc của một trong những email gửi tôi có thể thấy rằng Outlook đã thiết lập một cách rõ ràng font trong nguồn email:
// 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";
}
Tại sao các định dạng khác nhau và làm thế nào tôi có thể nhận được email tự động để sử dụng cài đặt mặc định của người dùng? Tôi đang sử dụng phiên bản 11 của các hội đồng interop vì có sự kết hợp của Outlook 2003 và 2007 được cài đặt.
Không thực sự là những gì tôi muốn ... nhưng có lẽ là tốt như tôi sẽ nhận được ngay bây giờ! –