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

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

Коротко: для каждого письма и подписчика должна быть одна уникальная отправка.

Почему возникает такая проблема

Дубли появляются из-за одинаковых email в базе, пересечения сегментов, повторного запуска cron, retry без проверки статуса, нескольких worker или ошибки, когда письмо помечается отправленным только после внешнего ответа.

Что проверить в первую очередь

  • есть ли дубли email в базе
  • пересекаются ли сегменты рассылки
  • сколько раз запускалась задача отправки
  • как работает очередь и retry
  • фиксируется ли уникальная отправка письма

Как я подхожу к задаче

Я беру конкретного подписчика с дублем и восстанавливаю путь отправки по логам и таблицам.

  • нахожу все записи отправки по email
  • проверяю сегменты и фильтры
  • смотрю очередь и повторные задачи
  • добавляю уникальный ключ отправки
  • тестирую рассылку на контрольной группе

Что подготовить для быстрой диагностики

  • пример email, который получил дубль
  • название сервиса рассылки
  • время отправки
  • доступ к базе или админке
  • правила сегментации

Сроки и аккуратность

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

Чего лучше не делать

Не удаляйте всех дублей вручную без правила объединения. Можно потерять статусы подписки и историю согласий.

FAQ

Можно ли защититься от дублей на уровне базы?

Да, уникальный ключ по campaign_id и subscriber_id часто решает проблему.

Почему сервис отправил письмо дважды?

Иногда сервис получил два разных запроса от вашего сайта или очереди.

Что делать с пересечением сегментов?

Нужно перед отправкой собирать итоговый уникальный список получателей.

Можно ли проверить на тестовой группе?

Да, это правильный способ перед массовой отправкой.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку на проект, опишите проблему и укажите, какие доступы уже есть. Я посмотрю задачу, предложу безопасный план и скажу, с чего лучше начать.

Итог

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