Назад | Перейти на главную страницу

Каков общий механизм электронной почты в фоновом режиме?

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

Это ужасный пользовательский опыт. Как сделать так, чтобы это выглядело мгновенно (размещение собственного почтового сервера на данный момент не вариант)? Каким-то образом выполнить это в фоновом режиме? Может быть, используя какой-то механизм очередей?

Я использую стек LNAMP на машине CentOS 5 x64. Приложение использует CodeIgniter.

РЕДАКТИРОВАТЬ:

Похоже, что использование локального почтового сервера в качестве ретранслятора - обычное решение. Но как с помощью этого метода регистрировать или отслеживать правильность доставки электронной почты?

Примечание: некоторые ESP предоставляют REST API для доставки электронной почты (наши тоже). В настоящее время мы используем SMTP, а не их REST API.

Запустите локальный sendmail / qmail / postfix - что угодно, установите smtp-сервер на localhost. Локальный MTA будет стоять в очереди и доставить, когда сможет (сразу или при следующем запуске очереди).

В вашей системе:

# yum -y install sendmail
# chkconfig sendmail on
# service sendmail start

shoudl достаточно.

Я знаю про CodeIgniter, так что ничем не могу вам помочь.

Вы можете использовать Postfix в качестве рассылки нулевых сообщений (ретранслировать только на ISP). Это не более чем четырехстрочный текст:

main.cf

myorigin = $mydomain
relayhost = $mydomain
inet_interfaces = loopback-only
local_transport = error:local delivery is disabled

Ссылка: http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client

Не уверен, насколько это распространено (хорошая практика), но отправка электронного письма - типичный асинхронный процесс. Тот, который может занять несколько секунд и больше. Это делает его идеальным кандидатом для использования очереди сообщений.

Метод доставки имеет второстепенное значение, но сторонние поставщики, такие как SendGrid (для транзакционных писем - забытый пароль, счет-фактура и т. Д.) Или MailChimp (для информационных бюллетеней и маркетинга), предлагают хорошую ценность и доказали свою надежность.

Под очередью сообщений я подразумеваю RabbitMQ (AMQ), ZeroMQ, Gearman, AWS SQS и т. Д. Их можно использовать для любого типа обмена информацией между приложениями. В данном случае это информация, которую необходимо отправить по электронной почте.

Что касается информации о доставке, ее можно получить через API с таким поставщиком или с более дорогими планами через обратный вызов.