在不强制 TNEF 的情况下撰写 Outlook 邮件时设置属性,并在发送后引用这些属性
Setting properties while composing an Outlook Mail without forcing TNEF, and referring to those properties after sending
我遇到的问题与之前提出的问题中描述的问题类似,但我正在寻找更详细的答案,因为我在这方面缺乏经验,无法填写一些内容空格数:
Tag Outlook MailItem with ID number before send without causing TNEF (RTF) send
就像那个问题的提问者一样,我想在用户撰写邮件时将用户 属性 命名为 "XXXX" 设置为 MailItem,这样当用户以后重新访问他或她的“已发送邮件”文件夹中的同一个 MailItem 我可以再次读取 "XXXX" 属性 的值。
我的补充问题如下:
Dmitry Streblechenko 建议使用 MailItem.PropertyAccessor.SetProperty,但无论我在哪里看到它,我都会看到人们使用模式 link 来表示 属性。如果我希望我的 属性 仍被称为 "XXXX",那么正确的模式 link 应该使用什么?换句话说,在德米特里的建议中使用的正确语法是什么?
我想我可以使用“.Get属性”调用稍后从已发送邮件中读取 属性,但问题是我们的加载项有已经存在多年,用户发送的邮件已经充满了 MailItems,其中包含原始的 User属性 "XXXX"。即使我使用 .PropertyAccessor.SetProperty 设置它们,我仍然能够使用 UserProperties 获取 属性 "XXXX" 吗?
或者,如果我在撰写消息时继续使用原始代码来设置 UserProperties,但我随后使用了 .PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/id/{00062008-0000-0000 -C000-000000000046}/8582000B", false) 在 ItemSend 期间,就像原始发布者所暗示的那样,然后我明白 UserProperties 没有随消息一起发送,这对我来说没问题,但是在重新访问时它们是否仍然可用已发送邮件文件夹中的消息? Eugene Astafiev 建议使用 .Set属性 调用是安全的,但他没有说明它是否会影响发件人端的消息。
我个人偏好的解决方案将是 a) 允许我发送项目而不必以任何方式强制 Outlook 以任何特定格式发送邮件,并且 b) 能够继续访问属性用户的收件箱,因为我们总是通过 MailItem 的 UserProperties,但我知道我可能在这里要求一些不可能的东西。
- 您需要 PS_INTERNET_HEADERS 命名空间中的 属性。例如。
http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/x-my-prop
.
- 是,如果您指定完整的 DASL 名称。
- 是的,用户 属性 仍将存在于“已发送邮件”文件夹中。
我遇到的问题与之前提出的问题中描述的问题类似,但我正在寻找更详细的答案,因为我在这方面缺乏经验,无法填写一些内容空格数:
Tag Outlook MailItem with ID number before send without causing TNEF (RTF) send
就像那个问题的提问者一样,我想在用户撰写邮件时将用户 属性 命名为 "XXXX" 设置为 MailItem,这样当用户以后重新访问他或她的“已发送邮件”文件夹中的同一个 MailItem 我可以再次读取 "XXXX" 属性 的值。
我的补充问题如下:
Dmitry Streblechenko 建议使用 MailItem.PropertyAccessor.SetProperty,但无论我在哪里看到它,我都会看到人们使用模式 link 来表示 属性。如果我希望我的 属性 仍被称为 "XXXX",那么正确的模式 link 应该使用什么?换句话说,在德米特里的建议中使用的正确语法是什么?
我想我可以使用“.Get属性”调用稍后从已发送邮件中读取 属性,但问题是我们的加载项有已经存在多年,用户发送的邮件已经充满了 MailItems,其中包含原始的 User属性 "XXXX"。即使我使用 .PropertyAccessor.SetProperty 设置它们,我仍然能够使用 UserProperties 获取 属性 "XXXX" 吗?
或者,如果我在撰写消息时继续使用原始代码来设置 UserProperties,但我随后使用了 .PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/id/{00062008-0000-0000 -C000-000000000046}/8582000B", false) 在 ItemSend 期间,就像原始发布者所暗示的那样,然后我明白 UserProperties 没有随消息一起发送,这对我来说没问题,但是在重新访问时它们是否仍然可用已发送邮件文件夹中的消息? Eugene Astafiev 建议使用 .Set属性 调用是安全的,但他没有说明它是否会影响发件人端的消息。
我个人偏好的解决方案将是 a) 允许我发送项目而不必以任何方式强制 Outlook 以任何特定格式发送邮件,并且 b) 能够继续访问属性用户的收件箱,因为我们总是通过 MailItem 的 UserProperties,但我知道我可能在这里要求一些不可能的东西。
- 您需要 PS_INTERNET_HEADERS 命名空间中的 属性。例如。
http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/x-my-prop
. - 是,如果您指定完整的 DASL 名称。
- 是的,用户 属性 仍将存在于“已发送邮件”文件夹中。