因此,由于我没有清理数据库,有几次我被客户从开发服务器收到邮件时发现。因此,作为一种额外的安全选择,我想确保从我的开发机器发送的所有邮件要么根据域被拒绝,要么转发给我自己。
我发现了一些问题,它们在一定程度上满足了我的要求;
开发服务器上的 Postfix,只允许将邮件发送到一个域- 这看起来不错,也是我目前所实现的,但第一个答案的评论是正确的。通过 Sendmail 发送的邮件似乎不使用此设置。
postfix:捕获外发邮件并重定向- 这看起来还不错,但是更新传输对我来说没什么用。
我还研究了地址重写http://www.postfix.org/ADDRESS_REWRITING_README.html并阅读此博客文章http://rene.bz/redirect-all-outgoing-email-single-account-postfix/
我通过在命令行上使用 -t 参数调用 sendmail 来测试这一点,如下所示;
sendmail -t < mail
其中“邮件”的内容是
Date: Tue Oct 11 11:25:22 2011
To: [email protected]
Subject: test
From: [email protected]
test
我一直在将地址更改为我的 gmail 地址和 example.com 地址。我希望所有邮件都发送到另一个(工作)域。
到目前为止,我还没有看到任何限制措施生效。
/etc/postfix/transport 看起来像这样;
example.com :
.example.com :
* :discard
我已将这些行添加到 main.cf 中
smtpd_recipient_restrictions = hash:/etc/postfix/my_access, reject
transport_maps = hash:/etc/postfix/transport
另请注意,我正在使用与 MAMP 捆绑的 Postfix,并一直通过 MAMP 编辑 main.cf - 文件 > 编辑模板 > main.cf
答案1
您应该安装 pcre 并创建一个虚拟别名文件:
apt-get install postfix-pcre
在 mail.cf 中:
virtual_alias_maps = pcre:/etc/postfix/virtual
在 /etc/postfix/virtual 中:
/.*@.*/ $user
将 $user 替换为您的 catchall 邮箱的用户帐户。现在从该服务器发送的每一封邮件都将被捕获到 catchall 邮箱中
答案2
我认为,最简单的解决方案是,如果您想捕获所有外发邮件,请插入 /etc/postfix/main.cf
virtual_alias_maps = static:your_local_user_name
答案3
例如,设置relayhost
为拒绝中继的某个服务器 - 例如您自己的邮件服务器。这样,任何外发邮件都将被拒绝,并且其送达通知将发送到开发计算机上的邮政局长邮箱。