PidTagMessageFlags 规范属性
适用于:Outlook 2013 | Outlook 2016
包含指示消息的来源和当前状态的标志的位掩码。
属性 | 值 |
---|---|
相关属性: |
PR_MESSAGE_FLAGS |
标识符: |
0x0E07 |
数据类型: |
PT_LONG |
区域: |
常规消息传送 |
备注
此属性是在传输的发送和接收端公开的不可传输消息属性,其值因涉及的客户端应用程序或存储提供程序而异。 首次创建并保存消息时,客户端或消息存储提供程序将初始化此属性,然后在消息处理及其状态更改时由消息存储提供程序、传输提供程序和 MAPI 后台处理程序定期更新。
此属性存在于提交之前和之后的邮件上,以及收到的邮件的所有副本上。 虽然它不是收件人属性,但它会以不同的方式向每个收件人公开,取决于该收件人是否已读取或修改该属性。
可以为此属性设置以下一个或多个标志:
MSGFLAG_ASSOCIATED
邮件是文件夹的关联邮件。 客户端或提供程序对此标志具有只读访问权限。 对于不保留已读/未读状态的关联消息,将忽略MSGFLAG_READ标志。
MSGFLAG_FROMME
发送的消息用户是接收消息的消息用户。 客户端或提供程序具有对此标志的读/写访问权限,直到第一次 IMAPIProp::SaveChanges 调用,此后为只读。 此标志应由传输提供程序设置。
MSGFLAG_HASATTACH
邮件至少有一个附件。 此标志对应于邮件的 PR_HASATTACH (PidTagHasAttachments) 属性。 客户端对此标志具有只读访问权限。
MSGFLAG_NRN_PENDING
需要为消息发送未读报表。 客户端或提供程序对此标志具有只读访问权限。
MSGFLAG_ORIGIN_INTERNET
传入消息通过 Internet 到达。 它源自组织外部或网关无法视为受信任的源。 客户端应向用户显示相应的消息。 传输提供程序设置此标志;客户端具有只读访问权限。
MSGFLAG_ORIGIN_MISC_EXT
传入消息通过 X.400 或 Internet 以外的外部链接到达。 它源自组织外部或网关无法视为受信任的源。 客户端应向用户显示相应的消息。 传输提供程序设置此标志;客户端具有只读访问权限。
MSGFLAG_ORIGIN_X400
传入消息通过 X.400 链接到达。 它源自组织外部或网关无法视为受信任的源。 客户端应向用户显示相应的消息。 传输提供程序设置此标志;客户端具有只读访问权限。
MSGFLAG_ORIGIN_EXT_SEND
邮件源自组织外部。 客户端应向用户显示相应的消息。 传输提供程序设置此标志;客户端具有只读访问权限。
MSGFLAG_READ
消息标记为已阅读。 随时调用 IMessage::SetReadFlag 或 IMAPIFolder::SetReadFlags 时,可能会发生这种情况。 客户端还可以通过在消息首次保存之前调用消息的 IMAPIProp::SetProps 方法来设置此标志。 如果设置了 MSGFLAG_ASSOCIATED 标志,则忽略此标志。
MSGFLAG_RESEND
该消息包含对重新发送操作的请求,其中包含一个未交付的报告。 客户端或提供程序具有对此标志的读/写访问权限,直到第一次 IMAPIProp::SaveChanges 调用,此后为只读。
MSGFLAG_RN_PENDING
需要为邮件发送已读报告。 客户端或提供程序对此标志具有只读访问权限。
MSGFLAG_SUBMIT
由于调用 IMessage::SubmitMessage,邮件被标记为要发送。 消息存储提供程序设置此标志;客户端具有只读访问权限。
MSGFLAG_UNMODIFIED
传出消息自第一次保存以来未修改;传入消息自传递以来未修改。
MSGFLAG_UNSENT
邮件仍在撰写中。 它已保存,但尚未发送。 客户端或提供程序具有对此标志的读/写访问权限,直到第一次 IMAPIProp::SaveChanges 调用,此后为只读。 如果客户端在发送消息时未设置此标志,消息存储提供程序在调用 IMessage::SubmitMessage 时设置它。 通常,发送消息后会清除此标志。
客户端或消息存储提供程序可以通过调用 IMAPIProp::GetProps 方法读取标志值,随时检查消息的当前状态。 客户端或提供程序还可以调用 IMAPIProp::SetProps 方法,以更改当前具有读/写访问权限的任何标志。
其中几个标志始终是只读的。 在首次调用 IMAPIProp::SaveChanges 方法之前,有些是可读/写的,此后就 IMAPIProp::SetProps 而言,这些方法变为只读。 其中一个MSGFLAG_READ,稍后可以通过 IMessage::SetReadFlag 或 IMAPIFolder::SetReadFlags 进行更改。
此属性的初始值通常MSGFLAG_UNSENT,MSGFLAG_UNMODIFIED指示尚未发送或更改的消息。 第二次保存消息时,消息存储提供程序会清除MSGFLAG_UNMODIFIED标志。 邮件存储提供程序在保存邮件时可以设置的另一个值是MSGFLAG_HASATTACH标志,指示邮件具有一个或多个附件。 PR_HASATTACH 属性是从此设置计算的。
当客户端调用 IMessage::SubmitMessage 方法发送消息时,消息存储提供程序会为 MAPI 后台处理程序创建一个副本,并通过设置 MSGFLAG_SUBMIT 标志来更新此属性。 消息存储提供程序还会设置MSGFLAG_UNSENT(如果尚未设置)。 MSGFLAG_SUBMIT指示已调用 SubmitMessage ,开始发送过程,并且该消息现在对客户端是只读的。 MSGFLAG_UNSENT指示 MAPI 后台处理程序正在处理消息。 如果取消发送过程,消息存储提供程序将重置此标志。
将消息提供给传输提供程序进行传递时,如果发送方在邮件服务器上具有与接收邮件相同的帐户,则传输提供程序将设置MSGFLAG_FROMME标志。 传输提供程序为当前登录用户发送的传入消息设置MSGFLAG_FROMME。 客户端可以使用此值来确定在“已发送邮件”文件夹的内容表中显示收件人姓名比发件人姓名更合适。 在撰写过程中保存但尚未发送的邮件也应显示收件人姓名,而不是发件人姓名。
对于传入消息,消息存储提供程序会清除MSGFLAG_READ标志以重置其读取状态。 当需要更改读取状态并控制已读和未读报表的发送时,客户端可以通过调用邮件的 IMessage::SetReadFlag 方法或其文件夹的 IMAPIFolder::SetReadFlags 方法来设置或清除MSGFLAG_READ标志。 除了实现这些方法的对象之外,这些方法之间的main区别在于,文件夹方法可能会影响文件夹中的一条消息、多条消息或所有邮件。 消息方法影响单个消息。
客户端还应测试MSGFLAG_ORIGIN_X400、MSGFLAG_ORIGIN_INTERNET、MSGFLAG_ORIGIN_MISC_EXT和MSGFLAG_ORIGIN_EXT_SEND标志的传入消息。 这些标志由入站传输提供程序设置,并指示消息来自网关不能视为受信任的源。 这意味着消息源自组织外部或内部,但来自网关不知道的工作站。 在任何情况下,都可能无法确认发件人的身份,并且存在将计算机病毒引入组织的风险。 客户端应向用户显示警告消息,并提供在不打开消息的情况下删除消息的选项。
消息存储提供程序为传入消息设置MSGFLAG_UNMODIFIED标志。 MSGFLAG_UNMODIFIED指示消息自传递以来未更改。 客户端在消息存储提供程序设置此值后无法清除此值。
相关资源
协议规范
提供对相关Exchange Server协议规范的引用。
处理邮件和附件对象。
头文件
Mapidefs.h
提供数据类型定义。
Mapitags.h
包含作为备用名称列出的属性的定义。