← Назад к решениям
ПлагинPHPПлатно

WP Mail Manager

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

WP Mail Manager

Стек

PHPWordPressMySQLWP CronEloquent

Проблема

У растущего магазина на WordPress были тысячи зарегистрированных пользователей и ни одного способа до них дозвониться, кроме писем о заказах WooCommerce. Каждая промо-рассылка требовала разработчика, аккаунт стороннего SaaS-сервиса и ручной выгрузки списка пользователей - то есть ещё и передачи клиентской базы наружу.

У самостоятельной отправки два сбоя, которые проявляются только на объёме. Отправишь весь список залпом - SMTP на общем хостинге режет или роняет прогон, домен получает удар по репутации, и никто не знает, до какого места дошло. Перезапустишь после падения - те, кто уже получил письмо, получат его снова, потому что «кому уже отправлено» нигде не записывалось.

До → После

ДоПосле
Ручная выгрузка CSV и сторонний инструмент под каждую кампаниюКампания создаётся и отправляется из админки WordPress
Клиентская база передаётся стороннему сервисуПолучатели не покидают собственную базу клиента
Весь список уходит разом: троттлинг SMTP, ошибки, урон репутацииКрон отправляет фиксированную порцию за тик с паузой между письмами
Упавший прогон приходилось начинать сначала, отправляя всем повторноОчередь выводится джойном: никто не попадает в неё дважды
Восстановленная копия базы могла написать реальным клиентамОтправка выключена по умолчанию, перехватчик пишет в лог вместо доставки
Никакого представления о том, что доставленоВ админке по каждой кампании: в очереди / отправлено / ошибка

Как это работает

  1. Аудитории - это категории. Подписчики входят в категории, кампании привязываются к категориям, и обе связи - многие-ко-многим, поэтому одна кампания может бить в несколько сегментов, а подписчик состоять в нескольких без дублирования.
  2. Очередь выводится, а не хранится. Ожидающие получатели вычисляются джойном подписчиков с записями о доставке, где записи нет. «Кому ещё нужно отправить» - следствие данных, а не флаг, который кто-то поддерживает; именно поэтому прерванный прогон продолжается ровно с места остановки, а отправить одну кампанию одному человеку дважды просто невозможно.
  3. Крон задаёт темп. Свой интервал управляет тем, как часто уходит порция, размер порции - сколько писем, а пауза между письмами удерживает прогон в лимитах SMTP хостера вместо залпа, после которого домен уходит в спам.
  4. Каждая отправка фиксируется. По каждой доставке пишется результат, поэтому таблица в админке показывает «в очереди / отправлено / ошибка» по кампании без отдельного журнала.
  5. Тестовая отправка и стоп-кран. Кампанию можно сначала отправить на один адрес. После активации отправка выключена, а перехватчик писем умеет писать их в лог вместо доставки - поэтому копия боевой базы не может написать реальным клиентам.

Основные возможности

  • Сегментация аудитории по категориям, многие-ко-многим с кампаниями
  • Выводимая очередь - возобновляемая, без повторных отправок одному получателю
  • Отправка по крону с настраиваемым интервалом, размером порции и паузой
  • Статистика по кампании: в очереди / отправлено / ошибка
  • Тестовая отправка на один адрес перед запуском
  • Отправка выключена по умолчанию, перехватчик писем для небоевых копий
  • HTML- и текстовые кампании со своими заголовками и отправителем
  • Массовое зачисление существующих пользователей в новую категорию при её создании

Установка

  1. Загрузите папку плагина в /wp-content/plugins/ и активируйте
  2. Дайте активации создать таблицы кампаний, категорий и доставок
  3. Откройте Mail Manager, создайте категорию и привяжите к ней кампанию
  4. Задайте интервал крона, размер порции и паузу под лимиты вашего SMTP
  5. Отправьте тестовое письмо и включите отправку - до этого она выключена

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок