0

我遇到了与先前提出的问题中描述的问题类似的问题,但我正在寻找答案中的更多细节,因为我在这方面缺乏经验,无法填补一些空白:

在发送前用 ID 号标记 Outlook MailItem 而不会导致 TNEF (RTF) 发送

就像那个问题的提问者一样,我想在用户撰写邮件时设置一个用户属性,比如它名为“XXXX”,这样当用户稍后在他或她的已发送邮件文件夹中重新访问同一个邮件项目时我可以再次读取“XXXX”属性的值。

我的其他问题如下:

  1. Dmitry Streblechenko 建议使用 MailItem.PropertyAccessor.SetProperty,但无论我看到使用什么,我都看到人们使用模式链接来表示属性。如果我希望我的财产仍被称为“XXXX”,那么正确的架构链接是什么?换句话说,在 Dmitry 的建议中使用的正确语法是什么?

  2. 我收集我可以使用“.GetProperty”调用稍后从已发送项目中读取属性,但问题是我们的加载项已经存在多年,并且用户发送的项目已经充满了具有原始 UserProperty 的 MailItems XXXX”在其中。即使我使用 .PropertyAccessor.SetProperty 来设置它们,我仍然可以使用 UserProperties 来获取属性“XXXX”吗?

  3. 或者,如果我在撰写消息时继续使用原始代码设置 UserProperties,但我随后使用了 .PropertyAccessor.SetProperty(" http://schemas.microsoft.com/mapi/id/ {00062008-0000-0000-C000- 000000000046}/8582000B", false) 在 ItemSend 期间,就像原始发布者所建议的那样,然后我了解 UserProperties 不会随消息一起发送,这对我来说很好,但是在重新访问消息时它们仍然可用已发送邮件文件夹?Eugene Astafiev 建议使用 .SetProperty 调用是安全的,但他没有说明它是否会影响发送者端的消息发生的情况。

我个人偏好的解决方案是:a) 允许我发送项目,而无需以任何方式强制 Outlook 以任何特定格式发送消息,并且 b) 能够继续访问用户收件箱中的属性我们总是通过 MailItem 的 UserProperties,但我知道我可能在这里要求一些不可能的事情。

4

1 回答 1

0
  1. 您需要 PS_INTERNET_HEADERS 命名空间中的属性。例如http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/x-my-prop
  2. 是,如果您指定完整的 DASL 名称。
  3. 是的,用户属性仍将存在于“已发送邮件”文件夹中。
于 2016-09-28T15:16:48.967 回答