创建收件人列表
适用于:Outlook 2013 | Outlook 2016
收件人列表是一个 ADRLIST 结构,其中包含每个邮件收件人的属性值结构数组(邮件的目标)。 收件人可以表示用户、计算机或文件夹。 要发送的所有邮件都需要至少一个已通过名称解析过程的收件人 -- 确保 PR_ENTRYID (PidTagEntryId) 属性包含在收件人的属性值数组中的过程。
收件人的属性是通讯簿属性和邮件属性的组合。 收件人属性可以应用于特定收件人的所有邮件,也可以仅应用于当前邮件。 消息存储和传输提供程序都可以设置收件人属性。
在消息准备好发送时,每个收件人的属性值数组中必须具有一组核心属性。 所需的收件人属性集包括:
PR_ADDRTYPE (PidTagAddressType)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_EMAIL_ADDRESS (PidTagEmailAddress)
PR_ENTRYID
PR_OBJECT_TYPE (PidTagObjectType)
PR_SEARCH_KEY (PidTagSearchKey)
这些属性用于访问收件人、向其发送消息,以及将其与其他收件人进行比较。 并非所有这些属性都需要立即可用。 最初可以在不知道其条目标识符的情况下添加收件人,具体取决于名称解析过程来分配此属性。 在发送邮件前的某个时刻,请调用 IAddrBook::ResolveName ,确保已解决收件人列表中的所有收件人。 有关详细信息,请参阅 解析收件人名称。
收件人列表可以从通讯簿容器中的消息用户或通讯组列表条目创建,也可以从一次性创建。 一次性收件人是作为临时条目创建的收件人,这些条目仅用于处理单个邮件,或作为要添加到个人通讯簿的条目。 一次性条目标识符和地址的格式由 MAPI 定义。 有关这些格式的详细信息,请参阅 一次性地址 和 一次性条目标识符。
可以让用户生成其收件人列表:
仅包含通讯簿中的条目。
仅包含一次性条目。
将通讯簿收件人和一次性通讯簿收件人组合在一起。
使用“公用地址”对话框创建收件人列表
将 ADRPARM 结构中的内存归零,并将 ADRLIST 指针设置为 NULL。
调用 IAddrBook::Address 以显示地址对话框并填充 ADRPARM 结构。
调用 IMessage::ModifyRecipients,传递 ADRLIST 指针。 此结构将包含用户选择的每个收件人的属性。
以编程方式创建收件人列表
为列表中要包括的每个收件人分配包含一个 ADRENTRY 结构的 ADRLIST 结构。 使每个 ADRENTRY 结构足够大,以容纳每个必需的属性, 并PR_RECIPIENT_TYPE (PidTagRecipientType) 。
对于每个收件人,请在 ADRLIST 结构中为其 aEntries 成员设置属性值数组。
使用设置MODRECIP_ADD标志调用 IMessage::ModifyRecipients 。