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

我们有一个通过PHPMailer发送电子邮件的Web服务器,在将电子邮件发送到域上的电子邮件地址时,这种方式正常工作。 但是,将电子邮件发送到域外的地址时,会失败,并显示以下错误:

“SMTP错误:以下收件人失败:[email protected]

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

任何帮助将不胜感激。

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

然而,多点可能会阻止:

  • 来自第三方解决scheme的发件人电子邮件不正确
  • 第三方环境不在Exchange服务器上的白名单中
  • Exchange Server和第三方解决scheme之间所需的端口不会打开
  • 您的configuration需要TLS连接(例如startTLS),但SSL证书在第三方解决scheme中不受信任(如果您希望排除故障,请查看以下说明)。

解决这个问题的最佳select是在第三方解决scheme上打开一个telnet会话并连接到您的交换服务器( 如果您需要示例,请参阅此处 )。 然后尝试通过telnet发送电子邮件。 基于远程logintesting,你会得到一个SMTP指定的错误消息,你应该添加到您的发布,以便我们可以挑选。

我通过在我的PHP代码中注释掉TLS行来实现它:

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