消息属性概述

适用于:Outlook 2013 | Outlook 2016

MAPI 将消息属性分为三种类型:

  • 消息内容属性。

  • 消息传输或信封属性。

  • 邮件收件人属性。

消息内容属性描述消息的文本。 每个消息类都有其自己的一组内容属性。 MAPI 定义笔记和报告消息的内容属性;由处理这些消息类的客户端和消息存储提供程序为其实现适当设置属性。 PR_BODY (PidTagBody) 和 PR_RTF_COMPRESSED (PidTagRtfCompressed) 是笔记消息的内容属性示例。 PR_BODY 包含笔记的未格式化内容,而 PR_RTF_COMPRESSED 包含笔记格式化内容的压缩版本。 有关属性标识符范围的详细信息,请参阅 属性标识符范围

对于新消息类,客户端可以通过以下两种方式之一定义特定于内容的属性:

  • 通过使用自定义消息类内容属性范围中的属性标识符:0x6800 0x7BFF。

  • 通过使用具有标识符的命名属性,这些标识符属于0x8000 0xFFFE范围。

自定义消息类内容属性的标识符范围可供任何创建自定义消息类的客户端使用。 因此,此区域中的一个属性标识符可用于多个消息类。 此范围中属性的用户无法对属性的行为做出假设。

对于命名属性,客户端创建一个名称,该名称指定属性集以及每个新属性的字符串或数值。 然后,客户端将该属性与命名属性范围中的标识符相关联。 命名属性的用户通过 IMAPIProp::GetIDsFromNamesIMAPIProp::GetNamesFromIDs 方法按名称或标识符访问它们。

信封属性提供用于将邮件从一个收件人传输到另一个收件人的信息。 与消息内容属性一样,客户端或服务提供商可以定义自己的信封属性,以补充 MAPI 定义的信封属性。 客户端和传输提供程序根据 MAPI 提供的定义设置 MAPI 定义的信封属性。 实现特殊功能的传输提供程序可以定义自己的信封属性,以便向客户端公开这些功能。 MAPI 设置了可用于这些特殊提供程序定义属性的属性标识符范围。 传输提供程序通常实现一个特殊的属性页来显示这些属性并使客户端能够更改它们。 PR_SUBJECT (PidTagSubject) 和 PR_MESSAGE_CLASS (PidTagMessageClass) 是信封属性的示例。 有关详细信息,请参阅 属性标识符范围

收件人属性描述已发送邮件的目标。 收件人可以是消息用户、通讯组列表或计算机。 收件人属性由 MAPI 定义,并由服务提供商设置。 通讯簿提供程序支持某些收件人属性用于其消息用户和通讯组列表对象;客户端、消息存储提供程序或传输提供程序支持其他收件人属性。 例如,所有收件人都需要地址和地址类型;当收件人存储在其某个容器中时,这些是通讯簿提供程序维护的属性。 收件人还有一个类型 ,PR_RECIPIENT_TYPE (PidTagRecipientType) ,它将接收者标识为主要抄送、抄送副本或盲送抄送者。

许多消息属性是可选的,这意味着客户端不能期望它们可用或设置为有效值。 某些消息属性是必需的,但仅当消息处于特定状态时才可用。 例如,在保存消息之前,新创建的消息不需要具有条目标识符,在消息准备好提交之前,不需要具有消息类。 客户端应始终检查其 IMAPIProp::GetPropsIMAPIProp::OpenProperty 调用的结果,并在请求的属性不可用时将默认值用作备份。

服务提供程序设置的大多数消息属性对客户端都是只读的。

另请参阅

MAPI 消息