Как не дожидаться отправки письма в PHP?

Использую PHPMailer и при отправке письма происходит «зависание». Почтовый сервер долго думает и в итоге PHP отваливается по таймауту.


Не хочется форкаться. Может кто знает как можно это обработать средствами самого PHPMailer-а?


Пробовал устанавливать свойство «Timeout», не помогло.
  • Вопрос задан
  • 4819 просмотров
Решения вопроса 1
7workers
@7workers
нужно, чтобы на сервере был sendmail демон ( qmail ). Он будет обрабатывать очередь. php.net/manual/en/function.mail.php ищите на странице 'queue', там есть несолько идей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
EnChikiben
@EnChikiben
Может, делать что то типа планировщика задач, в который добавляется отправка письма со всем необходимым, а он выполняется отдельно от скрипта в какой то период времени.
Ответ написан
happyproff
@happyproff
Счастливый веб-разработчик
Вместо отправки, пишите письмо в json/xml файл или в БД. А по крону запускайте скрипт, отравляющий письмо. Если письмо отправится, удаляйте/перемещайте файл/запись.
Ещё очень красиво решается асинхронными задачами в Gearman.
Ответ написан
Комментировать
la0
@la0
Если vds на чем-то дебианоподобном — apt-get install exim4-base
или любой другой почтовый сервер, с которым работали.
Конфиги по-умолчанию (по состоянию на осень 2011) работали с настройками «из коробки» без проблем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы