ullNewsletter send process
User performs "send newsletter" action
- New newsletter -> click "Send"
- BaseUllNewsletterActions::executeEdit()
- BaseUllNewsletterActions::executePostSave()
- $newsletterEdition
- ->submitted_at = now()
- ->is_queued = false
- ->is_active = true
- ->save();
- $newsletterEdition
Spool emails task
- Cron invokes every 5 minutes
-
*/5 * * * * php /.../ullright.../symfony ull_mail:spool-emails --less-noisy
-
- SpoolEmailsTask::execute()
- Release UllNewsletterEdition locks > 15 minutes
- Iterate editions:
- Request lock for UllNewsletterEdition by id, abort if already locked
- Create ullSfMail message
- Get recipients
- Start transaction
- Iterate recipients:
- Clone message
- Set recipient
- Send to queue
- Set edition "queued_at" = now()
- Save edition
- Commit transaction