Che*_*udo 3 postfix regular-expressions rewritemap
我刚刚开始尝试使用 postfix 重写发件人地址。debian-7.11
我用和运行服务器postfix-2.9.6
。
内容/etc/postfix/main.cf
:
[...]
smtp_generic_maps = hash:/etc/postfix/generic
[...]
Run Code Online (Sandbox Code Playgroud)
内容/etc/postfix/generic
:
santiago@uranus.caoba.fr santiago.uranus.caoba.fr@caoba-mail.fr
auguste@uranus.caoba.fr auguste.uranus.caoba.fr@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
到目前为止它有效。当用户santiago
发送电子邮件时,它会按照santiago.uranus.caoba.fr@caoba-mail.fr
我想要的方式发送。
我的问题是我希望任何用户都可以执行此重写,而不必向/etc/postfix/generic
. 所以我想知道是否可以通过某种正则表达式来完成,例如:
(.*)@$hostname $1.$hostname@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
感谢您的帮助
圣地亚哥
后缀手册明确指出何时禁止在regexp
或pcre
表中进行插值(主要是因为作者认为在该上下文中使用它是不安全的)。如果相关映射没有说明不是的话,默认是可以插值的。
您可以使用 SQL 查找进行更复杂的映射,但只要您的主机名是固定的并且只有您拥有的域的子域,正则表达式就完全足够了。
为 postfix 安装合适的正则表达式模块
apt install postfix-pcre
Run Code Online (Sandbox Code Playgroud)
添加新/etc/postfix/generic.pcre
表:
/([a-z]+)@([^.]+)\.caoba\.fr/ $1.$2.caoba.fr@caoba-mail.fr
Run Code Online (Sandbox Code Playgroud)
更改表类型(即替换现有的hash
-type 映射!):
postconf -e smtp_generic_maps=pcre:/etc/postfix/generic.pcre
Run Code Online (Sandbox Code Playgroud)
您可能仍然想检查是否已append_dot_mydomain
启用(据我所知,过去默认情况下启用)。Debian 安装了所有相关手册,因此man 5 generic
会提出解释。
归档时间: |
|
查看次数: |
6224 次 |
最近记录: |