Postfix中的地址操作大全(1)


我用Postfix好长时间了,看到许多关于Postfix的知识点,我也想晒晒,就给大家讲个Postfix中的地址操作的问题吧。

1. 将地址改写为标准格式

在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,也即除去了最后的点号。

2. 规范地址映射

在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

3. 地址欺骗

就是将形如user@host.domain的地址改写成user@domain或user@other.domain, 好像是从其他的邮件服务器发出的一样。缺省该功能是被禁止的,可以用参数masquerade_domains使其生效如:

masquerade_domains = $mydomain

也可以通过masquerade_exceptions参数对特定的用户不进行地址欺骗,如:

masquerade_exceptions = root

注意:地址欺骗只对发件人地址有作用。


相关内容