Postfix 开发服务器-拦截所有外发邮件

Postfix 开发服务器-拦截所有外发邮件

因此,由于我没有清理数据库,有几次我被客户从开发服务器收到邮件时发现。因此,作为一种额外的安全选择,我想确保从我的开发机器发送的所有邮件要么根据域被拒绝,要么转发给我自己。

我发现了一些问题,它们在一定程度上满足了我的要求;

开发服务器上的 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为拒绝中继的某个服务器 - 例如您自己的邮件服务器。这样,任何外发邮件都将被拒绝,并且其送达通知将发送到开发计算机上的邮政局长邮箱。

相关内容