是否可以将 Postfix 中的外发电子邮件限制到一个特定域?

是否可以将 Postfix 中的外发电子邮件限制到一个特定域?

我们的生产服务器需要定期向客户群发邮件。这很完美。问题是,当我们测试新功能时,我们的“暂存”环境也会向客户发送电子邮件,并且忘记在我们众多的数据库和表中覆盖实际的客户电子邮件。

我想到了一个解决方案:我是否可以配置 Postfix,使得当我们在暂存/测试服务器上时,所有外发电子邮件都被阻止,除非它们发往我们自己的域。

我搜索了一下,找到了如何拒绝特定域名的方法,但还没有找到除了一个域名之外拒绝所有域名的方法。任何帮助都将不胜感激。

答案1

您可以在 main.cf 中添加传输图:

transport_maps = texthash:/etc/postfix/transport

然后使用您最喜欢的编辑器编辑 /etc/postfix/transport 并添加以下内容:

example.com smtp:
* error:only mail to *@example.com will be delivered

这将退回除 *@example.com 之外的所有收件人的邮件。如果您需要能够动态更改 transport_map,请使用 hash 而不是 texthash,但一旦您更改了文件,就必须在文件上使用 postmap 来更新相应的 .db 文件,这样 postfix 才能注意到它已更改。如果您不想退回其他邮件,请使用以下命令:

example.com smtp:
* discard:

答案2

如果 example.com 是你的内部域,你需要编辑传输文件以仅包含

例如.com:

并不是

example.com smtp:

http://www.postfix.org/transport.5.html

否则,通过这一改变,这对我来说效果很好。谢谢 lsmooth!

答案3

这看起来不正确。我使用此设置来限制传出域。

main.cf:transport_maps=hash:/etc/postfix/transport

并且传输包含以下几行:

domain1.foo smtp:ip.address.of.relay.host
domain2.foo smtp:ip.address.of.relay.host
* discard:

然后只需 postmap /etc/postfix/transport 并重新加载 postfix。这对我来说很好。

埃罗

相关内容