【发布时间】:2018-07-08 17:54:31
【问题描述】:
我最近问了另一个问题here,但没有引起任何关注。总而言之,在我正在处理的 Drupal 8 站点上,SMTP 身份验证模块测试电子邮件发送失败并抛出错误“从 xxxx@xxxx.com 向 xxxx@xxxx.com 发送电子邮件时出错:SMTP 错误:可以不连接到 SMTP 主机。我已经把这个问题缩小了很多,在我看来,它的不同足以保证一个单独的线程。希望它足够简洁,能给我一些答案。
问题: The module 正在尝试以下 fsockopen 连接:
$this->smtp_conn = @fsockopen($host,
$port,
$errno,
$errstr,
$tval);
在文件 SMTP.php 的第 130-134 行。每个变量的值如下:
- $host = 'smtp.office365.com'
- $port = '587'(也试过 25)
- $tval = 10
错误值返回如下:
- $errorno = 20
- $errstr = '连接超时'
对于 SMTP 连接来说,这似乎是一个非常基本的步骤,但我不确定它为什么会失败。显然这是一个非常模糊的错误,但是我还需要在服务器上设置什么才能使其正常工作吗?也许添加一个DNS记录?谁能想到任何超时的原因?
【问题讨论】:
-
为我工作。你从哪里连接?可能是您的网络有出站连接限制,或者您连接的主机被严重列入黑名单。
-
@Sammitch 我在办公室的 Mac 上。有什么方法可以检查其中任何一个吗?我对这玩意有点陌生,请问可以用telnet来测试一下吗?
-
telnet smtp.office365.com 587,成功为220 CO2PR06CA0054.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mon, 29 Jan 2018 23:00:40 +0000,失败为连接超时。不过,您最好询问您的 IT 人员是否阻止或过滤 SMTP。
标签: php outlook smtp fsockopen