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();

 

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