我需要在开发/测试环境中设置 postfix 来过滤电子邮件,这样我们就不会向客户发送垃圾邮件。在我们的测试环境中,我们会清理所有用户数据,以便将电子邮件地址更改为 @localhost,尽管出于测试目的,某些地址可能会在稍后更改为有效的电子邮件地址。我们通过第三方提供商转发所有电子邮件以进行传送,因此我想要做的是将 postfix 设置为:
- 丢弃所有发送到本地主机的电子邮件
- 将所有剩余的电子邮件转发给我们的第三方提供商。
作为一名相对较新的 Postfix 用户,最简单的设置方法是什么?
答案1
好吧,我似乎通过一些搜索和测试找到了答案。以下是我必须做的:
在 /etc/postfix/main.cf 中:
transport_maps = hash:/etc/postfix/transport smtp_sasl_auth_enable = yes smtp_sasl_password_maps = static:<relayhost username>:<relayhost password> smtp_sasl_security_options = noanonymous smtp_tls_security_level = may start_tls = yes
在 /etc/postfix/transport 中:
localhost discard: localhost.localdomain discard: * relay:[smtp.relayhost.com]:587
中继显然也会绕过 alias_maps 指令,因此为了让别名继续工作,我必须注释掉 alias_maps 和 alias_database,并用 virtual_alias_maps 替换它们。virutal_alias_map 的格式与 alias_maps 相同,因此这是一个很容易进行的更改。
完成这些更改后,只需重新启动 postfix 并运行“postmap /etc/postfix/transport”即可构建 transport.db。现在,所有发送到 @localhost 或 @localhost.localdomain 的邮件都会被丢弃,而其他所有邮件都会通过指定主机进行中继。