尝试解决使用 Postfix 作为 SMTP 中继时出现的问题。问题是,对于我们在 O365 托管的主域,当我从 Postfix 向该域发送电子邮件时,Postfix 日志中出现以下错误:
530 5.7.57 客户端未通过身份验证,无法发送邮件。
当邮件发送到我们的默认电子邮件域 ourcompany.com(不是真实域)时,会发生此错误。所有其他电子邮件都会被送达,即使是发送到云中同一 Exchange 环境中托管的其他域。因此,如果我发送到[电子邮件保护]我在发送时遇到错误。如果我将其发送到[电子邮件保护],也托管在同一个 Exchange 实例中,它被交付。
我怀疑发送地址引用了默认域,这是问题的根源。发送/回复电子邮件地址是[电子邮件保护]我认为,发件人为 @ourcompany.com 的电子邮件被拦截,因为要么它被检测为欺诈邮件,要么它不是从我们的默认域发送的。我收到客户端未验证错误,因为邮件被发送到我们的默认域,而不是从我们的默认域发送。不应该有“中继”。我们内部网络上的 Postfix 服务器就是“中继”。
我见过很多这样的帖子。微软的帖子几乎都指出这是解决方案:https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365#option-3-configure-a-connector-to-send-mail-using-microsoft-365-or-office-365-smtp-relay我还看到了这个:postfix 通过 office365 中继所有邮件的问题
但我的目标不是将 O365 用作中继。Postfix 服务器是中继。我只希望 O365 Exchange 服务器不要拒绝该域的入站邮件。同样,除 Exchange 中的默认域电子邮件外,所有电子邮件地址都会被递送。
另外一个信息:我们也使用了 Barracuda,但是错误似乎来自 Exchange,而不是 Barracuda,所以我不认为这是问题的根源。
发送服务器是一台运行 Postfix 版本 3.5.8 的 CentOS8 VM,它有一个内部地址和一个 CentOS8 主机名。我将我们网络的外部 IP 添加到 SPF 记录中,因为流量会从我们的默认网关流出。我在 Exchange 中将 CentOS8.ourcompany.com 设为接受域。
如果目标不是通过 O365 交换进行中继,而只是允许 ourdomain.com 接受从另一个 CentOS8 服务器发送的电子邮件,我需要做什么才能允许这样做?这看起来很简单,但我找不到有效的解决方案。