ОШИБКА SMTP: не удалось подключиться к серверу: соединение отказано (111) с Office365

Извините, если это дорога, по которой много ездили. Я видел другие посты об этом, но ничто в них не решило проблему, которую я имею, или зажгло лампочку, которая помогла мне решить это самостоятельно.

Вот мой код:

require 'PHPMailerAutoload.php';
$config = parse_ini_file('/path/to/file/config.ini', true);
$mail = new PHPMailer;
$mail->SMTPDebug = 3;
$mail->Debugoutput = 'html';
$mail->isSMTP();
$mail->Host = $config['host']; //smtp.office365.com
$mail->SMTPAuth = true;
$mail->Username = $config['username']; //[email protected]
$mail->Password = $config['password']; //confirmed this is being passed correctly
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->From = $config['username'];
$mail->FromName = 'Website Forms';
$mail->addAddress('[email protected]', 'Some Name');
$mail->addReplyTo('[email protected]', 'SenderFirst SenderLast');
$mail->addBCC('[email protected]');
$mail->isHTML(true);
$mail->Subject = 'Contact Form Submission';
$mail->Body = 'Some html here';
$mail->AltBody = 'Some alt content here';
if(!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
//perform success actions
exit();
}

Я подтвердил, что домен, имя пользователя и пароль верны и передаются правильно. Важно отметить, что это работало на нашем локальном сервере разработчика до запуска. Как только сайт был перенесен на наш хостинг-аккаунт (Hostgator), это когда он перестал работать. Я подтвердил с помощью HG, что порт 587 открыт на нашем сервере.

Вот сообщение об ошибке, которое я вижу:

Connection: opening to smtp.office365.com:587, t=10, opt=array ()
SMTP ERROR: Failed to connect to server: Connection refused (111)
SMTP connect() failed.
Message could not be sent.Mailer Error: SMTP connect() failed.

Любая помощь, которая может быть оказана, очень ценится, даже если это просто ссылка на статью, которая объясняет, почему она не будет работать сейчас, когда она находится в нашей производственной среде.

8

Решение

Ни один из ответов не сработал для меня.
Через много часов я нашел проблему, но работает только для Cpanel / WHM

  • Войдите в WHM.
  • Перейти к ConfigServer Security & Брандмауэр внутри плагина опция.
  • Нажмите на настройку брандмауэра
  • Фильтр по настройкам SMTP
  • Найдите параметр SMTP_ALLOWUSER и добавьте имя пользователя учетной записи Cpanel, разделенное комой.
  • Перезагрузите брандмауэр.

Если у вас нет доступа к WHM, обратитесь к своему провайдеру.

6

Другие решения

В PHP 5.5 и phpmailer есть ошибка с номером порта. Не устанавливайте номер порта (mail-> port = ….), это вызывает ошибку:
msgstr «ошибка smtp не удалось установить соединение с сервером отказано 111»

Оставьте номер порта по умолчанию 25, и он будет работать!

2

Оказывается, HG нужно было изменить настройки брандмауэра на нашем сервере. Как только они это сделали, все заработало отлично. Так что, если у вас возникла подобная проблема, я бы порекомендовал убедиться, что все правильно с вашей стороны, но затем посоветуйтесь с вашим хостинг-провайдером, чтобы узнать, что нужно сделать с их стороны.

0

Если вы используете cPanel / WHM, вам необходимо убедиться, что:

Ограничить исходящий SMTP для root, exim и mailman (FKA SMTP Tweak) — установлен в OFF. (Это можно отредактировать в разделе «Конфигурация сервера» Настройки твика (поиск: SMTP))

Если у вас также есть ConfigServer Security & Брандмауэр включен, вам нужно будет изменить конфигурацию брандмауэра. Нажмите «Настройка брандмауэра», затем выберите «Фильтровать по настройкам SMTP». Теперь найдите SMTP_ALLOWUSER и добавьте имя пользователя учетной записи cPanel, разделенное комой. Нажмите «Изменить» и перезапустите брандмауэр.

0
По вопросам рекламы [email protected]