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

Chr*_*ian 8 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
Run Code Online (Sandbox Code Playgroud)

“邮件”的内容在哪里

Date: Tue Oct 11 11:25:22 2011 
To: c@example.com 
Subject: test 
From: whatever@somewhere.com
test
Run Code Online (Sandbox Code Playgroud)

我一直将地址更改为我的 gmail 地址和 example.com 地址。我希望所有邮件都转到另一个(工作)域。

到目前为止,我还没有看到任何限制生效。

/etc/postfix/transport 看起来像这样;

example.com :
.example.com :
* :discard
Run Code Online (Sandbox Code Playgroud)

我已将这些行添加到 main.cf

smtpd_recipient_restrictions = hash:/etc/postfix/my_access, reject
transport_maps = hash:/etc/postfix/transport
Run Code Online (Sandbox Code Playgroud)

另请注意,我使用的是与 MAMP 捆绑在一起的 Postfix,并且一直在通过 MAMP 编辑 main.cf - 文件 > 编辑模板 > main.cf

小智 8

您应该安装 pcre 并创建一个虚拟别名文件:

apt-get install postfix-pcre
Run Code Online (Sandbox Code Playgroud)

在mail.cf中:

virtual_alias_maps = pcre:/etc/postfix/virtual
Run Code Online (Sandbox Code Playgroud)

在 /etc/postfix/virtual 中:

/.*@.*/  $user
Run Code Online (Sandbox Code Playgroud)

将 $user 替换为您的通用邮箱的用户帐户。现在,从该服务器发送的每封邮件都将被捕获在 catchall 邮箱中


小智 8

我认为,最简单的解决方案,如果你想捕获所有外发邮件,插入/etc/postfix/main.cf

virtual_alias_maps = static:your_local_user_name
Run Code Online (Sandbox Code Playgroud)


Tom*_*zky 0

例如设置relayhost为某些拒绝中继的服务器 - 例如您自己的邮件服务器。这样,任何外发邮件都将被简单地拒绝,并且其送达通知将发送到开发计算机上的邮局管理员邮箱。