Skip to content
Sendex
Sendex
Email-рассылки в MODX — подписчики, очередь писем и форма подписки на сайте
  1. Компоненты
  2. Sendex
  3. FAQ

FAQ

Подписка на сайте

Форма не показывается или пустая

  1. Сниппет вызван некэшированным: [[!Sendex]], не [[Sendex]]
  2. ID рассылки в &id= существует и рассылка активна (или передайте &showInactive=1)
  3. Очистите кэш MODX после установки пакета

Гость не получает письмо подтверждения

  1. sendex_confirm_email = Да (по умолчанию)
  2. Проверьте SMTP / emailsender в настройках MODX
  3. Ссылка подтверждения действует 30 минут — после истечения нужна новая подписка
  4. Rate limit: sendex_confirm_rate_limit > 0 ограничивает частоту писем на один email
  5. Папка «Спам» у получателя

Ссылка подтверждения открывается, но подписка не создаётся

  1. Страница по ссылке вызывает [[!Sendex]]
  2. На странице перехода сниппет без &widgetKey (ссылки подтверждения и отписки не передают sendex_widget_key)
  3. Hash уже использован или истёк (registry /sendex/subscribe/)

Авторизованный пользователь видит форму подписки, хотя уже подписан

  1. Email в Profile совпадает с guest-строкой — слияние могло ещё не произойти; обновите страницу
  2. Плагин Sendex подписан на OnUserActivate / OnUserSave (переустановите пакет при обновлении)

Гость и пользователь MODX

Гость подписался, потом зарегистрировался — две строки?

Нет, политика слияния: при активации или сохранении пользователя guest-строки с тем же email получают user_id. Unique key (newsletter_id, email) не даёт дубль.

Слияние не сработало

  1. Email в Profile точно совпадает с guest-подпиской
  2. Плагин Sendex активен на OnUserActivate и OnUserSave
  3. OnBeforeUserActivate не используется намеренно — отменённая активация не должна выполнять слияние

Очередь и отправка

Письма не уходят

Проверьте по порядку:

  1. В очереди есть строки (Компоненты → Sendex → Очередь писем)
  2. Cron запускает php core/components/sendex/cron/send.php из корня MODX
  3. Заполнены email_from / emailsender, шаблон рассылки существует
  4. Лог MODX — ошибки PHPMailer после sxOnQueueSendFailed
  5. Лимит хостинга на исходящую почту

Cron работает, но очередь не уменьшается

  1. Строка в claim (claimed_at, expires_at +900 сек) — другой процесс мог захватить
  2. Ошибка SMTP — claim снимается, строка остаётся для retry
  3. sendex_queue_limit (по умолчанию 100) — за один запуск обрабатывается не больше лимита

«Отправить подписчикам» vs «Добавить в очередь»

ДействиеЧто делает
Отправить подписчикамaddQueues() + немедленный flush()
Добавить в очередьТолько addQueues(); отправка отдельно или через cron

Для больших баз удобнее формировать очередь и слать cron порциями.

Менеджер и настройки

Нет доступа к Sendex в менеджере

Страница требует view_sendex или view_document. Ключ view_sendex transport не создаёт — по умолчанию хватит view_document.

Нет кнопки экспорта CSV

  1. sendex_hide_export_button = Нет
  2. Право edit_document у пользователя менеджера

sendex_queue_limit нет в настройках

Transport не создаёт этот ключ. Добавьте вручную в Системные настройки namespace sendex, значение по умолчанию 100.

MODX 3

Совместимость

Sendex 2.0.0-pl проверен на MODX 3.2.0-pl. Модели — глобальные sx*, не MODX\Revolution\sx*. Меню менеджера: namespace + action. Схема БД — Phinx-миграции при установке и обновлении.

События sxOn* не видны в списке

Переустановите или обновите пакет Sendex — transport регистрирует события. Вызов по имени через invokeEvent работает и без записи в UI.

Связанные разделы