C# 如何将持久数据添加到邮件项目中,使其对用户不可见

C# 如何将持久数据添加到邮件项目中,使其对用户不可见,c#,outlook-addin,C#,Outlook Addin,我有一个Outlook加载项,它收集数据并在发送电子邮件时进行处理。由于电子邮件可能会在以后保存和发送,因此数据需要与电子邮件项目一起保存 目前,我正在通过添加一个用户属性来实现这一点,然后在发送电子邮件之前将其删除 唯一的问题是,如果用户想要打印未发送的电子邮件,那么用户属性是可见的 是否有人知道有其他方法可以做到这一点,或者是否有方法可以防止打印时看到我的用户属性 Outlook.UserProperty mailUserProperty = currentMailItem.UserProp

我有一个Outlook加载项,它收集数据并在发送电子邮件时进行处理。由于电子邮件可能会在以后保存和发送,因此数据需要与电子邮件项目一起保存

目前,我正在通过添加一个用户属性来实现这一点,然后在发送电子邮件之前将其删除

唯一的问题是,如果用户想要打印未发送的电子邮件,那么用户属性是可见的

是否有人知道有其他方法可以做到这一点,或者是否有方法可以防止打印时看到我的用户属性

Outlook.UserProperty mailUserProperty = currentMailItem.UserProperties.Add(MY_ATTACHMENT_PROPERTY, Outlook.OlUserPropertyType.olText);
mailUserProperty.Value  = "Some Data";

不要使用UserProperties集合添加/读取属性。相反,您可以使用MailItem.PropertyAccessor.GetProperty/SetProperty直接访问相同的属性。您可以在中查看要在GetProperty/SetProperty中使用的DASL属性名称-选择已设置该属性的消息,单击OutlookSpy功能区上的IMesage按钮,选择自定义属性,查看DASL编辑框。

如果用户看到数据,问题有多大?即使您可以对打印的电子邮件隐藏属性,也可能无法阻止已确定的用户通过编程方式访问电子邮件对象的属性。这主要是因为打印的电子邮件中出现了这团奇怪的数据。是否可以使用?非常确定的是,除了From、To、Subject等典型的SMTP头之外,不会打印头。