PHP => если (почта) + тайм-аут? - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть упрощенная веб-форма, работающая на bluehost, которая при отправке отправляет почту в список рассылки.

Недавно почтовый сервер вышел из строя, и мой скрипт php mail завис, когда была нажата кнопка отправки.Пользователь попробовал еще раз, и снова страница просто зависла.Позже, когда почтовый сервер вернулся, он отправил несколько копий почты.

Мой вопрос заключается в том, есть ли простой способ установить какое-то время ожидания в сценарии, так что, если установлен периодпроходит время, и почтовый сервер не подтвердил запрос, или, альтернативно, если количество неудачных попыток превысило заданное число, сценарий прекратит попытки отправить письмо?

Мой сценарий:

// try to send email
if (mail($to,$subject,$msg,$headers)) {
header('Location: complete.php');
} else
{
header('Location: incomplete.php');
}

Спасибо за любой совет, который ты сможешь дать, Рич.

PS.У меня нет доступа для изменения каких-либо настроек на сервере, хотя у меня есть файл .htaccess, сохраненный в локальном каталоге.

1 Ответ

0 голосов
/ 01 апреля 2011

Это невозможно. Возможно, вы захотите взглянуть на phpmailer, который более продвинут, чем встроенная функция mail (), которую предоставляет php.

mail () всегда возвращает true, если письмо было отправлено на почтовый сервер (и фактически не должно зависать, когда почтовый сервер не работает, но возвращает false).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...