You have 3 key commands in this
2 are for sending the messages to the queue and 1 is for actually sending the queue
For filling the queue:
php bin/console mautic:campaigns:trigger
This will send campaign events into the queuephp bin/console mautic:campaigns:trigger
This will send segmented emails and SMS into the queuephp bin/console messenger:consume email
This will process the queue and actually send the emails and sms
Here is some extra info about the consume command (thanks ChatGPT)
php bin/console messenger:consume email— options (the useful manual)Syntax (core):
messenger:consume [-l|--limit] [-f|--failure-limit] [-m|--memory-limit] [-t|--time-limit] [--sleep] [-b|--bus] [--queues] [--no-reset] [<receivers>...]Options you actually use
--limit=NUM→ process NUM messages then exit (good for cron).
--time-limit=SECONDS→ run up to SECONDS (finishes current message, then exits).
--memory-limit=128M|256M|...→ exit if memory exceeds that (prevents slow leaks).
--failure-limit=NUM→ stop after NUM failed messages (useful when something is broken).
--sleep=SECONDS→ when queue is empty, wait this long before polling again (CPU-friendly).
--queues=NAME1,NAME2→ only consume specific queue(s) if the transport supports it.
--bus=BUSNAME→ force which bus receives the messages (rare in Mautic setups).
--no-reset→ don’t reset services after each message (can leak state; only use if you really know why).Two Mautic-specific “gotchas” (important)
If you run
messenger:consumefrom cron, Mautic docs recommend you include at least one of:--memory-limit,--limit, or--time-limit(otherwise it becomes a long-lived process).The receiver name