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

时间:2018-01-29 22:57:08

标签: php outlook smtp fsockopen

我最近问了另一个问题here未能获得任何牵引力。总之,在我正在处理的Drupal 8站点上,SMTP身份验证模块测试电子邮件无法发送,并且错误发送错误'错误从xxxx@xxxx.com发送电子邮件到xxxx@xxxx.com:SMS错误:无法连接到SMTP主机。'我已经把这个问题缩小了很多,而且在我看来,这个问题足以与一个单独的线程保持一致。希望它足够简洁,能给我一些答案。

问题: 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
  4. 错误值返回如下:

    1. $ errorno = 20
    2. $ errstr ='连接超时'
    3. 这似乎是SMTP连接的一个非常基本的步骤,我不确定它为什么会失败。显然这是一个非常模糊的错误,但是我还需要在服务器上设置其他任何工作吗?也许添加DNS记录?任何人都可以想到任何理由让它超时吗?

1 个答案:

答案 0 :(得分:0)

这个答案的两个部分:

感谢@Sammitch在评论中的帮助,我能够确定问题是我正在使用的网络服务器的问题,而不是Outlook服务器的问题。我谈到了对此站点所托管的共享服务器的支持,他们说'默认情况下,出于安全原因,不允许向外部服务器发送SMTP连接。我们现在允许为您的帐户发送SMTP连接。'一旦他们允许,这个直接的问题就得到了解决。

然后又出现了另一个问题。发送测试电子邮件时,我收到以下错误:'客户端无权发送此发件人'。这是由来自地址的电子邮件引起的。没有设置为用户名电子邮件。设置完成后,电子邮件已成功发送。我知道这与这个具体问题并不完全相关,但它可能有助于将来为此挣扎的人。