
Sendex
Email newsletters in MODX — subscribers, send queue, and a front-end subscribe form
- MODX 2
- MODX 3
- PHP 7.4


[[!Sendex]], not [[Sendex]]&id= exists and is active (or pass &showInactive=1)sendex_confirm_email = Yes (default)emailsendersendex_confirm_rate_limit > 0 throttles emails per address[[!Sendex]]&widgetKey (confirm/unsubscribe links omit sendex_widget_key)/sendex/subscribe/)OnUserActivate / OnUserSave (reinstall package on upgrade)No. Merge policy: on activation or user save guest rows with the same email get user_id. Unique (newsletter_id, email) prevents duplicates.
OnUserActivate and OnUserSaveOnBeforeUserActivate is not used — cancelled activation must not mergeCheck in order:
php core/components/sendex/cron/send.php from MODX rootemail_from / emailsender set, newsletter template existssxOnQueueSendFailedclaimed_at, expires_at +900 sec)sendex_queue_limit (default 100) — each run processes at most that many rows| Action | What it does |
|---|---|
| Send to subscribers | addQueues() + immediate flush() |
| Add to queue | addQueues() only; send separately or via cron |
For large lists build the queue and flush via cron in batches.
Page requires view_sendex or view_document. Transport does not create view_sendex — view_document is usually enough.
sendex_hide_export_button = Noedit_document permissionsendex_queue_limit missing in settings Transport does not create this key. Add manually under System settings namespace sendex, default value 100.
Sendex 2.0.0-pl verified on MODX 3.2.0-pl. Models are global sx*, not MODX\Revolution\sx*. Manager menu: namespace + action. DB schema via Phinx on install/upgrade.
sxOn* events not listed Reinstall Sendex via Extras → Installer — transport registers events. invokeEvent by name works even without UI registration.
sendex_* keys