创建收件人列表

适用于:Outlook 2013 | Outlook 2016

收件人列表是一个 ADRLIST 结构,其中包含每个邮件收件人的属性值结构数组(邮件的目标)。 收件人可以表示用户、计算机或文件夹。 要发送的所有邮件都需要至少一个已通过名称解析过程的收件人 -- 确保 PR_ENTRYID (PidTagEntryId) 属性包含在收件人的属性值数组中的过程。

收件人的属性是通讯簿属性和邮件属性的组合。 收件人属性可以应用于特定收件人的所有邮件,也可以仅应用于当前邮件。 消息存储和传输提供程序都可以设置收件人属性。

在消息准备好发送时,每个收件人的属性值数组中必须具有一组核心属性。 所需的收件人属性集包括:

这些属性用于访问收件人、向其发送消息,以及将其与其他收件人进行比较。 并非所有这些属性都需要立即可用。 最初可以在不知道其条目标识符的情况下添加收件人,具体取决于名称解析过程来分配此属性。 在发送邮件前的某个时刻,请调用 IAddrBook::ResolveName ,确保已解决收件人列表中的所有收件人。 有关详细信息,请参阅 解析收件人名称

收件人列表可以从通讯簿容器中的消息用户或通讯组列表条目创建,也可以从一次性创建。 一次性收件人是作为临时条目创建的收件人,这些条目仅用于处理单个邮件,或作为要添加到个人通讯簿的条目。 一次性条目标识符和地址的格式由 MAPI 定义。 有关这些格式的详细信息,请参阅 一次性地址一次性条目标识符

可以让用户生成其收件人列表:

  • 仅包含通讯簿中的条目。

  • 仅包含一次性条目。

  • 将通讯簿收件人和一次性通讯簿收件人组合在一起。

使用“公用地址”对话框创建收件人列表

  1. 分配 ADRPARM 结构和指向 ADRLIST 结构的指针。

  2. ADRPARM 结构中的内存归零,并将 ADRLIST 指针设置为 NULL。

  3. 调用 IAddrBook::Address 以显示地址对话框并填充 ADRPARM 结构。

  4. 调用 IMessage::ModifyRecipients,传递 ADRLIST 指针。 此结构将包含用户选择的每个收件人的属性。

以编程方式创建收件人列表

  1. 为列表中要包括的每个收件人分配包含一个 ADRENTRY 结构的 ADRLIST 结构。 使每个 ADRENTRY 结构足够大,以容纳每个必需的属性, 并PR_RECIPIENT_TYPE (PidTagRecipientType) 。

  2. 对于每个收件人,请在 ADRLIST 结构中为其 aEntries 成员设置属性值数组。

  3. 使用设置MODRECIP_ADD标志调用 IMessage::ModifyRecipients