php: поиск электронной почты, которая поддерживает очередь сообщений

Я ищу электронную почту для создания системы рассылки в нашей компании. он должен поддерживать очередь сообщений (подача писем в очередь, автоматическая рассылка в фоновом режиме) без блокировки веб-сервера. поэтому я думаю, что фоновая обработка должна выполняться как фоновый сервис на сервере, аналогичный aspmail, но для php.

какие-либо предложения? благодаря

Я использовал Mail_Queue PEAR для очереди 200 000 писем за раз. Заполнение базы данных легко и быстро, даже с настроенным контентом, а затем довольно простой скрипт отправляет около 250 раз – если среднее значение нагрузки не слишком велико. Затем он перемещается и отправляет следующую партию. Это выполняется из фона, и его легко настроить так, что если таблица очередей пуста, она приостанавливается на мгновение, прежде чем она снова проверит (потому что проверка несколько раз в секунду никому не поможет).

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

Учебник Mail_Queue дает вам почти все, что вам нужно – просто прокрутите скрипт «send_messages.php» (из командной строки лучше), пока очередь базы данных не станет пустой, а затем приостановите время и снова запустите.

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

Есть хорошая статья: http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/, объясняющая, как создавать демоны в чистом PHP-коде.

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

Если у вас есть огромное количество писем для отправки, вы можете даже развернуть рабочих на нескольких серверах, которые будут ждать в той же очереди заданий, чтобы оптимизировать обработку электронной почты.

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

WTF? Управление очередями – это работа системы электронной почты – ее то, для чего она была предназначена , – это не ответственность приложения, связанного с ней. И если ваш почтовый сервер блокируется каждый раз, когда вы отправляете сообщение, в нем что-то не так.

Похоже, вы пытаетесь написать свой собственный MTA вместо того, чтобы фиксировать, что не так с вашим текущим положением.

Если вам необходимо предоставить автономные возможности, установите MTA на машине, где работает PHP.

Вы можете использовать redis в качестве очереди сообщений :

очередь сообщений

Redis – это очень быстрый и активно развитый сервер структуры данных. Написание чего-то с помощью redis будет легким, как пирог. Почему мне нравится redis в других очередях сообщений:

  • активно развивается.
  • Redis:

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

    Это очень мощный.

  • Очень проста в установке: make .
  • имеет c-привязки практически на любых предпочтительных языках.
  • клиентская библиотека c hiredis очень удобна для пользователя. Вы можете написать что-то на C, если хотите действительно хорошую производительность. В этом примере (благодаря hiredis) я создал только компиляции, используя только make .

Из-за природы того, что требуется, я не думаю, что это решение из ящика специально для обязанностей MTA, однако я мог ошибаться.

Недавно я создал нечто подобное, что связано с отправкой электронных писем в очередь базы данных с полем, чтобы показать, было ли оно отправлено или нет, а затем запустить задание CRON для обработки сценария отправки для установленной партии, отправить эти письма , и отметьте как отправленное, ополосните и повторите.

Было бы интересно поговорить с вами по электронной почте / msn, чтобы увидеть, что вы запланировали для системы, поскольку я в основном делаю то же самое.