如何通过 Exchange 将电子邮件从 Web 服务器发送到外部域?

如何通过 Exchange 将电子邮件从 Web 服务器发送到外部域?

我们有一个通过 PHPMailer 发送电子邮件的 Web 服务器,当向域中的电子邮件地址发送电子邮件时,此服务器运行正常。但是,当向域外的地址发送电子邮件时,它会失败并出现以下错误:

“SMTP 错误:以下收件人失败:[电子邮件保护]

我尝试为 Web 服务器的 IP 地址设置接收连接器,并将其开放给匿名用户等,但仍然显示相同的错误。这是 Windows Server 2008。

任何帮助将不胜感激。

答案1

从技术上讲,可以授予任何第三方解决方案通过您的 Exchange 服务器中继电子邮件的权利(这里是一个非常古老但仍然有效的文档)。然后,Exchange 服务器应该按照现有 Exchange 用户的方式将电子邮件发送到互联网。

然而,有多个因素可能会阻止这种情况发生:

  • 第三方解决方案的发件人电子邮件不正常
  • 第三方环境不在您的 Exchange 服务器白名单中
  • 您的 Exchange 服务器与第三方解决方案之间所需的端口未打开
  • 您的配置需要 TLS 连接(例如 startTLS),但第三方解决方案不信任 SSL 证书(如果您希望排除故障,可以检查以下内容如何)。
  • ...

解决该问题的最佳方法是打开第三方解决方案上的 telnet 会话并连接到您的 Exchange 服务器(如果你需要示例请参见此处)。然后尝试通过 telnet 发送电子邮件。根据 telnet 测试,您将收到一条 SMTP 指定的错误消息,您应该将其添加到您的帖子中,以便我们能够发现它。

答案2

我通过注释掉 PHP 代码中的 TLS 行来使其工作:

//$mail->SMTPSecure = 'tls';

相关内容