
FAQ
Site subscription
Form is empty or missing
- Snippet must be uncached:
[[!Sendex]], not[[Sendex]] - Newsletter ID in
&id=exists and is active (or pass&showInactive=1) - Clear MODX cache after package install
Guest does not receive confirmation email
sendex_confirm_email= Yes (default)- Check SMTP / MODX
emailsender - Confirm link expires in 30 minutes — subscribe again after expiry
- Rate limit:
sendex_confirm_rate_limit> 0 throttles emails per address - Recipient spam folder
Confirm link opens but subscription is not created
- Target page calls
[[!Sendex]] - Landing snippet without
&widgetKey(confirm/unsubscribe links omitsendex_widget_key) - Hash already used or expired (registry
/sendex/subscribe/)
Logged-in user still sees subscribe form
- Profile email may match a guest row — merge may be pending; refresh the page
- Sendex plugin subscribed to
OnUserActivate/OnUserSave(reinstall package on upgrade)
Guest and MODX user
Guest subscribed then registered — two rows?
No. Merge policy: on activation or user save guest rows with the same email get user_id. Unique (newsletter_id, email) prevents duplicates.
Merge did not run
- Profile email exactly matches guest subscription
- Sendex plugin active on
OnUserActivateandOnUserSave OnBeforeUserActivateis not used — cancelled activation must not merge
Queue and sending
Emails are not sent
Check in order:
- Queue has rows (Components → Sendex → Email queue)
- Cron runs
php core/components/sendex/cron/send.phpfrom MODX root email_from/emailsenderset, newsletter template exists- MODX log — PHPMailer errors after
sxOnQueueSendFailed - Hosting outbound mail limits
Cron runs but queue does not shrink
- Row in claim (
claimed_at,expires_at+900 sec) - SMTP error — claim released, row kept for retry
sendex_queue_limit(default 100) — each run processes at most that many rows
Send to subscribers vs Add to queue
| 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.
Manager and settings
No access to Sendex in manager
Page requires view_sendex or view_document. Transport does not create view_sendex — view_document is usually enough.
No CSV export button
sendex_hide_export_button= No- User has
edit_documentpermission
sendex_queue_limit missing in settings
Transport does not create this key. Add manually under System settings namespace sendex, default value 100.
MODX 3
Compatibility
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.
Related
- Quick start — first setup
- Email queue — cron and claim
- Events — hooks and plugin examples
- System settings — all
sendex_*keys
