Недавно мне пришлось создать для этого систему, вот решение, которое мы выбрали:
1- Система управления настраивает электронные письма и сохраняет их в базе данных.
2- Мы настраиваем учетную запись «без ответа» на нашем почтовом сервере, чтобы получать сообщения о недоставленных сообщениях.
3- Мы создаем небольшой код на основе отличной библиотеки рассылки swiftmailer (swiftmailer.org).
4. Мы запускаем созданный нами скрипт через cron и отправляем письма пакетами по 50 в минуту (hotmail, скорее всего, пометит электронную почту как спам, если с одного и того же адреса / сервера за одну минуту будет отправлено слишком много писем). Мы храним каждый swiftId в почтовой базе
5- Во время выполнения сценария отправки почты мы проверяем отказы или другие ошибки в нашем почтовом ящике без ответа и соответственно помечаем наши сообщения в нашей почтовой таблице (статус: 1 - успех, 2 - недействительный адрес электронной почты, 3 - отказы)
6- Мы синхронизируем наши данные (при доступе пользователя к разделу системы) в основной системе, когда они имеют статус и последнее изменение было сделано не менее 10 минут назад, чтобы ограничить изменение состояний в системе. (сценарий синхронизации может изменить статус элемента в основной системе, но 10-минутная задержка снижает риск изменений)
person
JF Dion
schedule
18.11.2010