Тайм-аут fsockopen, не удается подключиться к Office 365 SMTP

Недавно я задал еще один вопрос здесь что не удалось получить никакой тяги. Таким образом, на сайте Drupal 8, над которым я работаю, тестовое электронное письмо модуля аутентификации SMTP не было отправлено и выдавало ошибку «Ошибка отправки электронной почты с [email protected] на [email protected]: Ошибка SMTP: возможно не подключаться к хосту SMTP». Я немного сузил вопрос, и он достаточно отличается, чтобы, на мой взгляд, оправдать отдельную ветку. Надеюсь, это достаточно кратко, чтобы дать мне некоторые ответы.

Проблема: модуль пытается установить следующее соединение fsockopen:

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

В строках 130-134 файла SMTP.php. Значения для каждой переменной следующие:

  1. $host = 'smtp.office365.com'
  2. $port = '587' (также пробовал 25)
  3. $tval = 10

Значения ошибок возвращаются следующим образом:

  1. $ ошибка = 20
  2. $errstr = 'Время ожидания соединения истекло'

Это кажется довольно простым шагом для SMTP-соединения, и я не уверен, почему он не работает. Очевидно, это довольно расплывчатая ошибка, но есть ли что-то еще, что мне нужно настроить на сервере, чтобы это работало? Может быть, добавить запись DNS? Кто-нибудь может придумать причину, по которой это время истекло?


person ConorBaumgart    schedule 29.01.2018    source источник
comment
Работает на меня. Откуда вы подключаетесь? Скорее всего, либо ваша сеть имеет ограничения на исходящие соединения, либо хост, с которого вы подключаетесь, занесен в черный список.   -  person Sammitch    schedule 30.01.2018
comment
@ Sammitch Я на Mac в своем офисе. Есть ли способ проверить любой из них? Я немного не знаком с этим, но могу ли я использовать telnet для проверки?   -  person ConorBaumgart    schedule 30.01.2018
comment
telnet smtp.office365.com 587, успех — 220 CO2PR06CA0054.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mon, 29 Jan 2018 23:00:40 +0000, а сбой — истечение времени ожидания соединения. Однако вам может быть лучше просто спросить своего ИТ-специалиста, блокируют ли они или фильтруют SMTP.   -  person Sammitch    schedule 30.01.2018


Ответы (1)


Две части этого ответа:

Благодаря помощи @Sammitch в комментариях я смог определить, что проблема связана с веб-сервером, который я использую, а не с сервером Outlook. Я разговаривал со службой поддержки общего сервера, на котором размещен этот сайт, и они сказали: «По умолчанию исходящие SMTP-соединения с внешними серверами запрещены по соображениям безопасности». Теперь мы разрешили исходящие SMTP-подключения для вашей учетной записи». Как только они разрешили это, эта непосредственная проблема была исправлена.

Потом всплыла другая проблема. При отправке тестового письма я получал следующую ошибку: «Клиент не имеет прав на отправку в качестве этого отправителя». Это было вызвано тем, что в поле «Электронная почта с адреса» не было указано имя пользователя. Как только это было установлено, электронное письмо было успешно отправлено. Я знаю, что это не совсем относится к этому конкретному вопросу, но это может помочь кому-то бороться с этим в будущем.

person ConorBaumgart    schedule 31.01.2018