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

FORWARD 映射表

FORWARD 映射表提供了基于模式的转发功能和特定于源的转发机制。如果映射文件中存在 FORWARD 映射表,它将应用于每一个信封的 To: 地址。如果该映射表不存在或没有映射匹配条目,则不会进行任何更改。

如果地址匹配某个映射条目,则将测试映射结果。如果该条目指定$Y,结果字符串将替换信封的 To: 地址;如果指定 $N,将放弃映射结果。有关其他标志的列表,请参见表 10–8

表 10–8 FORWARD 映射表标志说明

标志 

说明 

$D 

在重写进程中再次运行输出 

$G 

在正向查找表中运行输出(如果已启用正向查找表) 

$H 

禁用进一步的正向查找表或 FORWARD 映射查找 

$I 

将邮件保存为 .HELD 文件

$N 

地址保留不变 

$Y 

将输出用作新地址 

在执行任何正向查找表查找之前,都会查询 FORWARD 映射(如果存在)。如果已通过 USE_FORWARD_DATABASE 的相应设置启用了正向查找表,则当 FORWARD 映射匹配且具有标志 $G 时,会将 FORWARD 映射的结果与正向查找表进行核对。(请注意,如果已指定特定于通道的正向查找表,则在正向查找表中进行查找之前,会将源地址和源通道置于 FORWARD 映射的结果之前。)如果匹配的 FORWARD 映射条目指定了 $D,则 FORWARD 映射(和可选的转发表查找)的结果将在 MTA 地址重写进程中再次运行。如果匹配的 FORWARD 映射条目指定了 $H,则在后续地址重写(使用 $D 的结果)期间将不会执行进一步的 FORWARD 映射或数据库查找。

以下示例说明了复杂的 REVERSEFORWARD 映射的使用。假设系统或与 mr_local 通道关联的名为 am.sigurd.innosoft.com 的伪域生成通用格式的 RFC 822 地址:

"lastname, firstname"@am.sigurd.example.com

"lastname,firstname"@am.sigurd.example.com

尽管这些地址完全合法,但它们经常会使不完全符合 RFC 822 语法规则的其他邮件程序(例如没有正确处理引用地址的邮件程序)产生混淆。因此,不要求引用的地址格式可用于更多的邮件程序。此类格式之一为

firstname.lastname@am.sigurd.example.com

复杂的 FORWARD 和 REVERSE 映射的示例:

REVERSE

 *|mr_local|"*,$ *"@am.sigurd.example.com $Y"$1,$ $2"@am.sigurd.example.com
 *|mr_local|"*,*"@am.sigurd.example.com   $Y"$1,$ $2"@am.sigurd.example.com
 *|*|"*,$ *"@am.sigurd.example.com        $Y$3.$2@am.sigurd.example.com
 *|*|"*,*"@am.sigurd.example.com          $Y$3.$2@am.sigurd.example.com
 *|mr_local|*.*@am.sigurd.example.com     $Y"$2,$ $1"@am.sigurd.example.com
 *|*|*.*@am.sigurd.example.com            $Y$2.$3@am.sigurd.example.com

FORWARD

 "*,$ *"@am.sigurd.example.com            $Y"$0,$ $1"@am.sigurd.example.com
 "*,*"@am.sigurd.example.com              $Y"$0,$ $1"@am.sigurd.example.com
 *.*@am.sigurd.example.com                $Y"$1,$ $0"@am.sigurd.example.com

因此,以上示例中的样例映射表的目的有三个方面。(1) 允许使用以上三种地址格式中的任何一种。(2) 仅对 mr_local 通道显示原始格式的地址,必要时进行格式转换。(3) 仅对所有其他通道显示最新未引用格式的地址,必要时进行格式转换。(以上 REVERSE 映射中,假设已设置了 MTA 选项 USE_REVERSE_DATABASE 中的第 3 位。)