fsockopen 超时,无法连接到 Office 365 SMTP

fsockopen timesout, cannot connect to Office 365 SMTP

我最近问了另一个问题 here 但没有得到任何关注。总之,在我正在处理的 Drupal 8 站点上,SMTP 身份验证模块测试电子邮件发送失败并抛出错误 'Error sending e-mail from xxxx@xxxx.com to xxxx@xxxx.com: SMTP Error: Could not connect to SMTP host.' , 保证一个单独的线程。希望它足够简洁,能让我得到一些答案。

问题: The module 正在尝试以下 fsockopen 连接:

$this->smtp_conn = @fsockopen($host,
                              $port,
                              $errno,
                              $errstr,
                              $tval);

文件 SMTP.php 中的第 130-134 行。每个变量的值如下:

  1. $host = 'smtp.office365.com'
  2. $port = '587'(也试过 25)
  3. $tval = 10

错误值返回如下:

  1. $errorno = 20
  2. $errstr = 'Connection timed out'

这似乎是 SMTP 连接的一个非常基本的步骤,我不确定它失败的原因。显然这是一个非常模糊的错误,但是我还需要在服务器上设置什么才能让它工作吗?也许添加 DNS 记录?谁能想到超时的任何原因?

这个答案的两个部分:

感谢 @Sammitch 在评论中的帮助,我能够确定问题是我使用的网络服务器的问题,而不是 Outlook 服务器的问题。我与托管此站点的共享服务器的支持人员进行了交谈,他们说 'By default, outgoing SMTP connections to external servers are not allowed for security reasons. We have now allowed outgoing SMTP connections for your account.' 一旦他们允许,这个紧迫的问题就得到了解决。

然后又出现了一个问题。发送测试电子邮件时,我收到以下错误:'Client does not have permissions to send as this sender'。这是由于 'E-mail from address' 未设置为用户名电子邮件引起的。一旦设置为那个,电子邮件就成功发送了。我知道这与这个特定问题并不完全相关,但它可能会帮助将来遇到这个问题的人。