
FAQ
Подписка на сайте
Форма не показывается или пустая
- Сниппет вызван некэшированным:
[[!Sendex]], не[[Sendex]] - ID рассылки в
&id=существует и рассылка активна (или передайте&showInactive=1) - Очистите кэш MODX после установки пакета
Гость не получает письмо подтверждения
sendex_confirm_email= Да (по умолчанию)- Проверьте SMTP /
emailsenderв настройках MODX - Ссылка подтверждения действует 30 минут — после истечения нужна новая подписка
- Rate limit:
sendex_confirm_rate_limit> 0 ограничивает частоту писем на один email - Папка «Спам» у получателя
Ссылка подтверждения открывается, но подписка не создаётся
- Страница по ссылке вызывает
[[!Sendex]] - На странице перехода сниппет без
&widgetKey(ссылки подтверждения и отписки не передаютsendex_widget_key) - Hash уже использован или истёк (registry
/sendex/subscribe/)
Авторизованный пользователь видит форму подписки, хотя уже подписан
- Email в Profile совпадает с guest-строкой — слияние могло ещё не произойти; обновите страницу
- Плагин Sendex подписан на
OnUserActivate/OnUserSave(переустановите пакет при обновлении)
Гость и пользователь MODX
Гость подписался, потом зарегистрировался — две строки?
Нет, политика слияния: при активации или сохранении пользователя guest-строки с тем же email получают user_id. Unique key (newsletter_id, email) не даёт дубль.
Слияние не сработало
- Email в Profile точно совпадает с guest-подпиской
- Плагин Sendex активен на
OnUserActivateиOnUserSave OnBeforeUserActivateне используется намеренно — отменённая активация не должна выполнять слияние
Очередь и отправка
Письма не уходят
Проверьте по порядку:
- В очереди есть строки (Компоненты → Sendex → Очередь писем)
- Cron запускает
php core/components/sendex/cron/send.phpиз корня MODX - Заполнены
email_from/emailsender, шаблон рассылки существует - Лог MODX — ошибки PHPMailer после
sxOnQueueSendFailed - Лимит хостинга на исходящую почту
Cron работает, но очередь не уменьшается
- Строка в claim (
claimed_at,expires_at+900 сек) — другой процесс мог захватить - Ошибка SMTP — claim снимается, строка остаётся для retry
sendex_queue_limit(по умолчанию 100) — за один запуск обрабатывается не больше лимита
«Отправить подписчикам» vs «Добавить в очередь»
| Действие | Что делает |
|---|---|
| Отправить подписчикам | addQueues() + немедленный flush() |
| Добавить в очередь | Только addQueues(); отправка отдельно или через cron |
Для больших баз удобнее формировать очередь и слать cron порциями.
Менеджер и настройки
Нет доступа к Sendex в менеджере
Страница требует view_sendex или view_document. Ключ view_sendex transport не создаёт — по умолчанию хватит view_document.
Нет кнопки экспорта CSV
sendex_hide_export_button= Нет- Право
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.
Связанные разделы
- Быстрый старт — первая настройка
- Очередь писем — cron и claim
- События — хуки и примеры плагинов
- Системные настройки — все ключи
sendex_*
