一、将地址改写为标准格式
在cleanup进程进行表查询之前,它***请求trivial-rewrite进程将新
邮件地址改写成标准的user@fully.qualified.domain格式。改写的目的是为了减少查询表中的条目,从而提供查询的效率。trivial-rewrite进程可以实现以下的地址改写:
* 将包含源路由信息的地址如@hosta,@hostb:user@site写成user@site,因为postfix不支持包含源路由信息的地址格式。
* 将形如user%domain的地址改写成user@domain的形式。该特性可通过allow_percent_hack参数进行控制,其缺省值为yes。
* 将只包含user的地址改写成user@$myorigin。该特性可通过append_at_myorigin参数进行控制,其缺省值为yes。***不要改动其缺省值,因为大多数的postfix进程更擅长处理地址形如user@$myorigin的邮件。
* 将形如user@host的地址改写成user@host.$mydomain。该特性可通过append_dot_mydomain参数进行控制,其缺省值为yes。
* 将形如user@site.的地址改写成 user@site,也即除去了***的点号。
二、 规范地址映射
在cleanup进程将一封新邮件存入incoming邮件队列之前,cleanup进程
将根据查询规范表来进行地址改写,从而使之更具可读性。主要是替换形如Firstname.Lastname 风格的地址以及清除无效的域。缺省postfix是不进行规范地址改写的,你可以通过指定canonical_maps参数的值来使其生效。如:
canonical_maps = hash:/etc/postfix/canonical
也可以分别为收件人和发件人地址分别指定不同的改写规范,这时参数sender_canonical_maps和recipient_canonical_maps的优先级比canonical_maps高。如:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
三、 地址欺骗
就是将形如user@host.domain的地址改写成user@domain或user@other.domain,
好像是从其他的邮件服务器发出的一样。缺省该功能是被禁止的,可以用参数masquerade_domains使其生效,如:
masquerade_domains = $mydomain
也可以通过masquerade_exceptions参数对特定的用户不进行地址欺骗,如:
masquerade_exceptions = root
注意:地址欺骗只对发件人地址有作用。
四、 虚拟地址映射
在运用了规范地址映射和地址欺骗之后,cleanup将使用虚拟表映射将邮件
重定向到所有的收件人。注意,该操作仅仅作用于信头上的收件人地址。这样,我们就可以将发送到虚拟域的邮件投递到真实用户的邮箱。系统的别名数据库同样可以起到相同的作用。缺省该功能是被禁止的,可以用参数virtual_maps使其生效,如:
virtual_maps = hash:/etc/postfix/virtual
五、 Relocated数据库查询
Relocated表格提供如何将邮件发送给在系统中没有帐号的用户。缺省该功能是被禁止的,可以用参数relocated_maps使其生效,如:
relocated_maps = hash:/etc/postfix/relocated
六、 别名数据库查询
当邮件在本地投递时,local投递代理进程会在别名数据库(linux下为
/etc/aliases)中查询收件人的别名。该操作不会作用于邮件信头中的地址。可以用alias_maps指定使用的别名数据库。缺省地,该功能是有效的,如:
alias_maps = hash:/etc/aliases
可以通过alias_database参数控制别名数据库的路径,如:
alias_database = hash:/etc/aliases
【编辑推荐】