当地址转发需要进行自动注册或特定于源时,可以使用正向查找表。请注意,通常不应使用正向查找表进行邮件的简单转发;执行此类转发时,使用 aliases 文件或别名查找表效率更高。默认情况下不会使用正向查找表,必须通过 USE_FORWARD_DATABASE 选项明确启用后才能使用该表。转发表查找是在执行了地址重写和别名扩展,且检查了所有 FORWARD 映射之后执行的。如果正向表查找成功,则结果替换地址将在整个 MTA 地址重写进程中再次运行。
有两种正向查找表机制,即内存内散列表或常规文本数据库。除非表的大小过分大,否则建议使用散列表。(1,000 不会受到限制,但是 100,000 就会受到限制)。通过设置 use_text_databases 选项中的第 2 位(值为 4)和 use_forward_database 启用散列表。散列表从 msg-svr-base/configure/forward.txt 中读取,它经过编译成为配置的可重新装入的部分,并可通过 imsimta reload 命令强制重新装入活动的 MTA 进程。
源文本文件的默认格式为:
user1@domain1 changedmailbox1@changeddomain1 user2@domain2 changedmailbox@changeddomain2 |
但是,如果已通过设置 USE_FORWARD_DATABASE 选项中的第 2 位启用特定于源的转发数据库,源文本文件的格式为:
source-channel|source-address|original-address changed-address
例如,以下条目
tcp_limited|bob@blue.com|helen@red.com "helen of troy"@siroe.com |
如果且仅在邮件来自于bob@blue.com 且排队通道为 tcp_limited 时,将 To: 地址 address helen@red.com 映射为 "helen of troy"@siroe.com。
有关正向文本数据库的更多信息,请参见10.9.1 MTA 文本数据库。