Не ждать ответа smtp

225
25 марта 2017, 02:25

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

Сейчас перекидываю на страницу с гет параметрами, и аяксом шлю, но это костыль.

Answer 1

Есть несколько вариантов:

  1. Правильный. Используйте очередь(ZeroMQ, RabbitMQ, Gearman ...)
  2. Тоже неплохой, но есть свои заморочки. На базе https://github.com/reactphp/http напишите внутренний сервер который будет принимать сообщения и отсылать емайлы. Т.е. отдали ему команду, и не ждите ответа.
  3. Больше как хак. Linux позваляет запускать процессы на бэкграунде. Можно запустить скрипт отправки через http://php.net/manual/en/function.exec.php добавив 1 > /dev/null 2>/dev/null & в конце команды.

    exec('php mailer.php 1 > /dev/null 2>/dev/null &');

READ ALSO
Двойной вывод элемента формы из-за ViewScript

Двойной вывод элемента формы из-за ViewScript

При выводе формы элемент $checkBox отображается дважды: до группы и в нейКак это исправить?

224
Вывод единицы в строке

Вывод единицы в строке

ЗдравствуйтеПомогите, пожалуйста, разобраться

214
Как правильно составить SQL запрос в PHP?

Как правильно составить SQL запрос в PHP?

Здравствуйте, сразу скажу что хочу сделать:

223