阻止Outlook将HTML转换为RTF

时间:2013-05-15 22:07:35

标签: c# .net outlook

我正在为Outlook 2007编写一个加载项。除非我以HTML格式发送电子邮件,Outlook将其转换为RTF,否则一切正常。因此,如果收件人打开它,例如。 Thunderbird他得到了一个看起来很难看的短信,而不是我发送的格式很好的html。

Outlook.MailItem theMail = (Outlook.MailItem)((Outlook.Application)Globals.ThisAddIn.Application).CreateItem(Outlook.OlItemType.olMailItem);
Outlook.Recipient rcp = theMail.Recipients.Add("joe blow <joe@blow.com>");
rcp.Type = (int)Outlook.OlMailRecipientType.olTo;
theMail.HTMLBody = <html composed elsewhere>
theMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;

我如何说服Outlook我确实想要HTML?

EDIT 好的 - 我在这里发现了问题at MSDN我正在添加用户属性

Outlook.UserProperty prop = theMail.UserProperties.Add("theQuoteId", Outlook.OlUserPropertyType.olText);
prop.Value = quote.qid.ToString();

根据该文章,该属性无法映射到mime标头,Outlook将其引入RTF。

所以我的下一个问题是弄清楚如何在邮件中添加唯一标记,以便稍后将其链接到数据库。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

几年前我遇到了这个问题。最后,我们使用Outlook热修复修复它,而不是代码更改。

答案 1 :(得分:1)

您是否在邮件上设置了任何用户属性?

如果您使用OutlookSpy查看已发送邮件文件夹中的Outlook邮件(单击IMessage按钮),您是否看到UseTnef命名属性(DASL名称http://schemas.microsoft.com/mapi/id/ {00062008-0000-0000-C000 -000000000046} / 8582000B)?