这是我想要用 postfix 实现的目标:我们频繁复制生产系统,以便向供应商、用户等发送邮件。有时在复制之后,我们的技术人员忘记关闭电子邮件发送功能,因此测试系统开始向供应商等发送电子邮件,从而造成混乱。为了防止这种情况,我已经要求我们的交换团队不要中继任何来自非生产服务器的邮件。但是,我们仍然需要能够从我们的开发和 QA 系统进行测试,因此我将 postfix 设置为所有其他系统的中继服务器,但我想确保 postfix 仅向一小部分开发人员和测试人员发送邮件。这样,就不会有任何恶意邮件或意外邮件发送给非预期的收件人。因此实际上,拒绝除列表中的人之外的所有邮件。我尝试了各种限制,但没有看到任何能够实现我想要做的事情。我希望有人能帮忙。谢谢。
答案1
使用 Postfix 可以做到这一点运输(5)(使用transport_maps
)。
[email protected] :
[email protected] :
[email protected] :
* error:You should not send mail from non-production servers.
此外,您可以考虑将此测试网络中的所有邮件转发到开发人员和测试人员的共享邮箱中。这样,您的技术人员就不必记住更改地址,从而减轻他们的工作量。我假设此 Postfix 服务器只是您的测试网络的 SMTP 网关,没有其他用途。在此示例中,您可以忘记并transport_maps
使用virtual_alias_maps
, 反而:
virtual_alias_maps = regexp:/etc/postfix/virtual-regexp
然后,为中的每个地址添加通配符正则表达式/etc/postfix/virtual-regexp
:
/.+@.+/ [email protected]
答案2
当我寻找类似的解决方案时,我发现了这一点:
如果你不信任这个项目,你可以自己写一个替代品。它使用标准的 postfix 接口http://www.postfix.org/SMTPD_POLICY_README.html文档中甚至还有一个示例 perl 过滤器。
Postfix 会询问过滤器如何处理每封电子邮件,然后由过滤器决定。因此,您可以实现任何您想要的逻辑。