Sun Java System Messaging Server 6 2005Q4 管理指南

重写规则机制

MTA 重写规则机制添加了新的功能,可以检查给定字符串是否为需要在本地处理的域。通过 $V$Z 元字符可以激活此新增功能。这些新增元字符在句法上与现有的 $N$M$Q$C 元字符类似,即这些元字符之后都要跟模式字符串。就 $N$M$Q$C 而言,此模式与源通道或目标通道相匹配。就 $V$Z 而言,此模式是一个域,并将检查该域是否为本地域。$V 导致非本地域的规则失败,$Z 导致本地域的规则失败。

按以下过程可以实现对这些元字符的处理:

  1. Messaging Server 将检查当前域与目录中的有效域条目是否匹配。如果不存在该条目,则转至步骤 3。

  2. 如果目录中有该域的条目,则将从域条目中检索由 LDAP_DOMAIN_ATTR_ROUTING_HOSTS MTA 选项(默认值为 mailRoutingHosts)指定的属性。如果存在该属性,它将列出能够处理该域中的用户的一组主机。该列表将与由 local.hostname configutil 参数指定的主机和由 local.imta.hostnamealiases configutil 参数指定的主机列表进行对比。这些选项可以分别由 LDAP_LOCAL_HOSTLDAP_HOST_ALIAS_LIST MTA 选项覆盖。 如果存在匹配或者域中不存在该属性,则该域为本地域。如果未出现匹配,则该域为非本地域。

    由于 mailRoutingHosts 属性取决于 ROUTE_TO_ROUTING_HOST MTA 选项的设置,因此将这些域作为非本地域进行处理。如果将选项设置为 0(默认设置),地址将仅被视为非本地地址,MTA 重写规则用于确定路由。如果将选项设置为 1,源路由(由 LDAP_DOMAIN_ATTR_ROUTING_HOSTS MTA 选项中列出的第一个值组成)将被附加到地址之前。

  3. 如果找不到任何域条目,则从域的左侧删除组件,然后转至步骤 1。如果没有剩余组件,则继续执行步骤 4。

    回溯域树的结果就是如果 siroe.com 被识别为本地域,则 siroe.com 的任何子域均将被识别为本地域。也可能会出现不需要这么做的情况,因此提供了 MTA 选项 DOMAIN_UPLEVEL 来控制该性能。特别是,如果清除 DOMAIN_UPLEVEL 的位 0(值为 1),则会禁用删除域组件的重试操作。DOMAIN_UPLEVEL 的默认值为 0。

  4. 现在需要执行虚名域检查。虚名域没有域条目,而是通过将特定的域属性附加到一个或多个用户条目指定的。通过使用由 DOMAIN_MATCH_URL MTA 选项指定的 LDAP URL 来执行 LDAP 搜索可以完成虚名域检查。应该将该选项的值设置为:

    ldap:///$B?msgVanityDomain?sub?(msgVanityDomain=$D)

    $B 将替换 local.ugldapbasedn configutil 参数的值;这是目录中用户树的基目录。LDAP_USER_ROOT MTA 选项专用于为 MTA 覆盖该 configutil 选项的值。

    该搜索的实际返回值并不重要。重要的是,是否会返回值。如果返回值,该域将被视为本地域;如果未返回值,该域将被视为非本地域。