1

我正在尝试添加一个项目属性,如下所示:

Microsoft.Office.Interop.Outlook.ItemProperty property = currentMail.ItemProperties.Add("isCopy", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olYesNo);
property.Value = false;

问题是它正在改变电子邮件格式。

在添加此属性之前,电子邮件发送如下:

格式化 在此处输入图像描述

添加此属性后,电子邮件发送如下:

没有格式化并带有附件 在此处输入图像描述

此外,我已经尝试过 UserProperties.Add。行为是相同的。

4

2 回答 2

2

添加用户属性会导致 Outlook 以 TNEF (RTF) 格式(臭名昭著的 winmail.dat)发送邮件。

您可以使用MailItem.PropertyAccessor.SetProperty(而不是使用)通过 DASL 名称设置属性,或者在调用 Send 之前使用UserProperties.Add将特殊UseTnef命名属性设置为 false 。MailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8582000B", false)

于 2016-02-12T20:41:52.203 回答
0

我已经实施了一些不优雅的解决方法,只是为了不被卡住。

正如我之前所说,我需要知道 MailItem 是否是副本。所以我将 EntryID 保存在副本列表中。

对象 X:

thisAddIn.AddEntryIdCopy(mailItem.EntryID);

对象 Y:

thisAddIn.ContainsEntryIdCopy(mailItem.EntryID)

Ps.:由于MailItem移动到不同的文件夹时EntryId会发生变化,所以只要MailItem在同一个文件夹中,这种方式就可以工作。

于 2016-02-12T18:49:32.143 回答