Phpmailer неожиданно выбрасывает это сообщение, когда работала нормально неделю назад: «SMTP ERROR: Не удалось подключиться к серверу: {материал на испанском языке говорит о тайм-ауте или ошибке приема ответа} (10060). ОШИБКА: Ошибка SMTP connect(). "PHPMailer некоторое время наводил штраф, а затем: SMTP ERROR: Не удалось подключиться к серверу: (10060) ОШИБКА: Ошибка SMTP connect()
Я попробовал следующее:
- Увеличение таймаута вар до 60 секунд
- Измените порты, используемые в скрипте: 25, 26, 587
- Убедитесь, что эти порты были открыты в брандмауэре и Fortinet
- Переключение между использованием и не использованием SSL/TLS (и определенный порт 465)
- Раскоментируйте php.ini строку о SSL и перезагрузки (очень комментировал в виде раствора)
- Проверить, конечно, пользователь, пароль и почтовый сервер
Моя окружающая среда:
- Локальный сервер управляет PHP (и сайт)
- Удаленный поставщик управляет SMTP-сервер
- Провайдер отлично работает с Outlook
- Сценарий работает нормально в локальном хосте (мой компьютер, а не на сервере)
Мой код:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 4;
$mail->Timeout =60;
$mail->SMTPAuth = true;
$mail->Host = "mail.domain.com.mx";
$mail->Username = "[email protected]";
$mail->Password = "123456";
$mail->Port = 26;
ПРИМЕЧАНИЕ: Мы не могли проверить телнет, поскольку блокируется сервером, но при тестировании пинг он ответил правильный IP
Любой walktrought?
ping сообщит вам только, включен ли аппарат и отвечает на ICMP-пакеты. Это ничего не сообщит вам о статусе службы (например, smtp) на машине. Вам нужно будет выяснить, какой способ проверить порты на удаленном конце. например попробуйте fsockopen() для различных портов электронной почты и посмотрите, что там происходит. –
Спасибо @MarcB Это хорошая идея использовать fsockopen. Я получаю такую же ошибку следующим образом: _10060 :: Ошибка при запросе данных_ – Uriel
Обычно это объясняется отсутствием сервера, сбоем DNS или блоками брандмауэра. Использование fsockopen ничем не отличается от того, что делает PHPMailer. Стоит удалить PHP из микса - попробуйте telnetting для разных портов. Если это не сработает, PHP тоже не будет. – Synchro