我尝试仅使用 1 个 postfix 实例来输入我的所有外发邮件。从那里,目标是将其转发到我的众多出站 postfix 实例之一。我使用循环 DNS 来执行此操作,以便将负载分散到各处。
[邮件客户端] --> (主实例) --> (出站实例) = 不起作用
[邮件客户端] --> (出站实例) = 工作正常
下面是我的主要输入后缀实例的相关 main.cf:
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
relayhost = [mta-mx-1.outbounddomain.com]
内部sasl_passwd
:
[mta-mx-1.outbounddomain.com] outbound_username:password
它应该中继mta-mx-1.outbounddomain.com
使用 中的用户名和密码组合sasl_passwd
。
以下是出站后缀实例的相关 main.cf:
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
我想法我可以全速将所有邮件发送到一台服务器,然后让其均匀地中继到所有服务器。这个想法是尝试通过这组松散配置的 postfix 实例发送邮件。然后,如果/当任何内容失败时,fallback_relay 会切换到更严格的配置(即:mta-mx-2.outbounddomain.com 等)。
当我尝试通过主实例从邮件客户端 (tbird) 发送邮件时,我收到中继访问被拒绝 (554) 的消息。它与出站实例建立连接,但身份验证似乎从未发生过。当我尝试使用相同的凭据直接发送邮件而不先进行中继时,邮件可以顺利通过。
我是不是漏掉了什么?是什么原因导致从主 postfix 实例发送时显示中继访问被拒绝,而直接发送时则不显示?
答案1
您没有区分smtpd
和smtp
。您的第一个“输入实例”处于 角色smtp
,而连接到 角色的“出站实例” smtpd
。因此,smtpd_sasl_password_maps
由于“错误的角色”, 根本无法使用。