phpMailer не истекает через указанное время

$mailer = new SMTP;
$mailer->Timeout = 5;
$mailer->connect($host, $port)

Это должно отменить функцию connect () через 5 секунд, но тайм-аут занимает гораздо больше времени и не отменяется через 5 секунд.

Как заставить мой скрипт прекратить попытки подключения к SMTP через 5 секунд?

Я с нетерпением жду ваших ответов.

С наилучшими пожеланиями,

distractedGuy

1

Решение

В классе SMTP PHPMailer есть два таймаута — Timeout а также Timelimit,

Timeout применяется при установлении начального TCP-соединения. Timelimit продолжительность, разрешенная для ответа каждой команды SMTP. Оба значения по умолчанию равны 5 минутам (в соответствии с RFC), поэтому может случиться так, что вы подключаетесь быстро, но тогда сервер очень медленно реагирует на команды. Вы должны попробовать установить Timelimit к более низкому значению, как это:

$mail->getSMTPInstance()->Timelimit = 5;

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

2

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

Других решений пока нет …

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