一次性地址

适用于:Outlook 2013 | Outlook 2016

一次性地址用于向一次性收件人(在任何会话通讯簿容器中没有相应条目的收件人)发送邮件。 客户端在向通讯簿添加新条目或向传出邮件的收件人列表中添加新收件人时,可以创建一次性地址。 一次性地址可以添加到任何可修改的容器。

若要创建一次性地址,客户端使用包含编辑控件的特殊模板,用于输入构成一次性地址的所有信息。 与其他类型的地址一样,一次性地址使用预定义格式。 MAPI 定义了一次性地址格式,如下所示:

Display name[Address type:Email address]

此格式有六个组件,以及有关引用字符的一些规则。 下表介绍了这些组件。

组件 使用情况 说明
显示名称
可选
如果不存在, 则 IAddrBook::ResolveName 使用电子邮件地址的可见部分作为显示名称。 可能包括空白。 有关详细信息,请参阅 IAddrBook::ResolveName
[
必需
描述类型和地址信息的开头。
]
必需
描述类型和地址信息的末尾。 如果此字符后面有空格以外的任何内容,则不会将条目视为自定义收件人。
地址类型
必需
地址类型;映射到特定的地址格式。 有关详细信息,请参阅 MAPI 地址类型
:
必需
将地址类型与电子邮件地址分开。
电子邮件地址
必需
收件人的地址。 可能包括空白。

MAPI 使用特定引号集来允许地址包含特殊字符,例如逗号 (、) 、左括号 ([) 和冒号 (:) 和一些不可键入的字符(如回车符或换行符或任何其他十六进制等效字符)。 引用字符是反斜杠 () 。 因此,如果客户端或提供程序必须在地址中插入反斜杠,则必须使用引号字符 (“\”) 。

客户端和服务提供商可以在任何非修复的可键入字段中使用此引用技术。 例如,以下条目将转换为 Bill Lee 作为显示名称,将 MSPEER 转换为地址类型,将 \billll\in 转换为电子邮件地址:

Bill Lee[MSPEER:\\\\billl\in]

若要插入特殊的非类型化字符,客户端和服务提供商使用后跟 x 和两个十六进制数字的引号来表示其十六进制等效项。 例如,如果地址具有一个不可键入的字符,该字符相当于回车符, (\0d) 以十六进制表示,则客户端将输入它们作为:

Fax Recipient[fax:recipient\x0dbuilding\x0doffice\x0d555-1212\x0d]

IAddrBook::ResolveName 还自动分析大多数 SMTP 地址,查找具有以下格式的地址:

XXX@YYY.ZZZ

尽管并非所有可能的 RFC822 格式都得到处理,但这种自动分析对于大多数用户来说已经足够了。 ResolveName 包括此功能,使用户能够直接在邮件中输入 SMTP 地址,并让该邮件转到 Internet 用户。 地址的 XXX、YYY 和 ZZZ 组件可以是一个或多个字符。 at 符号 (@) 不能包含在 XXX、YYY 或 ZZZ 地址组件中,YYY 组件也不能包含句点。 由于以下字符是 SMTP 地址中的特殊字符,因此 MAPI 会自动将包含这些字符的显示名称转换为一次性地址:

  • >>

  • @

  • <>

  • .

为每个一次性地址分配相应的一次性条目标识符。 若要进行此分配,客户端调用 IAddrBook::CreateOneOff ,传输提供程序调用 IMAPISupport::CreateOneOff。 有关详细信息,请参阅 IAddrBook::CreateOneOffIMAPISupport::CreateOneOff。 处理传入消息时,传输提供程序为网关地址和传输的关联通讯簿提供程序无法处理的地址创建一次性条目标识符。 传输提供程序检查消息中每个地址的类型,以确定是否可以由与传输关联的通讯簿提供程序处理。 如果不能,传输提供程序会调用 IMAPISupport::CreateOneOff ,将地址与一次性条目标识符相关联。

一次性条目标识符按以下顺序包含以下信息:

  1. MAPIUID

  2. 版本

  3. Flags

  4. 显示名称

  5. 地址类型

  6. 电子邮件地址

在调用 IAddrBook::CreateOneOffIMAPISupport::CreateOneOff 时,客户端和传输提供程序可以设置一个标志,指示由一次性地址表示的收件人是否可以处理格式化文本或嵌入的 OLE 对象。 为了指示收件人可以处理格式化文本和 OLE 对象,客户端和传输提供程序在 ulFlags 参数中设置MAPI_SEND_NO_RICH_INFO标志。 然后,MAPI 将一次性收件人的 PR_SEND_RICH_INFO (PidTagSendRichInfo) 属性设置为 FALSE。 如果未设置此标志,MAPI 会将 PR_SEND_RICH_INFO 设置为 TRUE,除非将一次性地址解释为 SMTP 地址。 在这种情况下, PR_SEND_RICH_INFO 默认为 FALSE。

另请参阅