![重写所有(一个收件人除外)外发电子邮件的收件人](https://linux22.com/image/561895/%E9%87%8D%E5%86%99%E6%89%80%E6%9C%89%EF%BC%88%E4%B8%80%E4%B8%AA%E6%94%B6%E4%BB%B6%E4%BA%BA%E9%99%A4%E5%A4%96%EF%BC%89%E5%A4%96%E5%8F%91%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E7%9A%84%E6%94%B6%E4%BB%B6%E4%BA%BA.png)
我有一台服务器,其中托管着一个允许发送电子邮件的 Java 应用程序。在测试期间,我希望 Postfix 将所有外发电子邮件发送到[电子邮件保护],但是发送至[电子邮件保护]需要独处。
基本上:
[email protected] --> [email protected]
*@* --> [email protected]
答案1
我想分享一些在我的用例中有效的配置(交付全部无论输入的收件人是谁,都将消息发送到我的本地邮箱)。
运行 Ubuntu 14.04,postfix 版本 2.11.0
将以下行添加到
/etc/postfix/main.cf
sender_canonical_maps = regexp:/etc/postfix/sender_canonical recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport
用内容 创造* : yoshi
创造
/etc/postfix/sender_canonical
/.+/ [email protected]
创造
etc/postfix/recipient_canonical/
/.+/ [email protected]
更新配置:
sudo postmap /etc/postfix/transport sudo postmap /etc/postfix/recipient_canonical sudo postmap /etc/postfix/sender_canonical
重新启动 postfix:
sudo service postfix restart
现在如果我运行以下脚本:
<?php
mail("[email protected]", "PseudoFaullt to local Inbox", "This is a manual scam mail, please steal money from yourself.\nThank you for the cooperation");
我在本地收件箱中收到了重写的收件人。实际上,我不确定您是否需要发件人和传输配置,但我的印象是如果没有它,它就无法工作。所以您可能想试一试以缩短流程。
请注意,*_maps*
中的指令以而不是/etc/postfix/main.cf
为前缀。regexp:
hash:
因此,对于您的单个例外,也许一个巧妙的正则表达式就可以完成这项工作。
关于设置 postfix、本地收件箱以及如何使用 Thunderbird 访问它们的非常详细的答案:
https://askubuntu.com/a/209877
相关信息sender_canonincal_maps
:
http://binblog.info/2012/09/27/postfix-rewrite-the-sender-address-of-all-outgoing-mail/
答案2
答案3
在 main.cf 中
recipient_canonical_maps = regexp:/etc/postfix/canonical_maps_recipient
然后创建 /etc/postfix/canonical_maps_recipient 并使用 postmap 进行编译
/[email protected]/ [email protected]
/.*/ [email protected]
答案4
您可以使用 Postfix 文档中描述的通用地图这里.如果您需要其他地址重写规则本文档也提供了必要的步骤。