I've used Flexmailer as an extension for ages because it was required for Mosaico. It is now in core (as well as the extension, so not sure which one gets used).

But I don't understand when it's used and what the implications of it are.

The settings in Administer » CiviMail » Flexmailer say:

Traditional Mailing Handler

For greater backward-compatibility, process "traditional" mailings with the CiviMail's hard-coded BAO.

For greater forward-compatibility, process "traditional" mailings with Flexmailer's extensible pipeline.

I don't understand what traditional mailings are - perhaps it's everything except Mosaico mailings?

Specificially, if I send:

  1. a CiviMail mailing without Mosaico
  2. a CiviMail Mosaico mailing
  3. a MessageTemplate with the MessageTemplate.send API
  4. a MessageTemplate where the template comes via Mosaico message template with the MessageTemplate.send API
  5. a MessageTemplate with the Email.send from the Email API extension used by CiviRules and FormProcessor and possibly others
  6. a MessageTemplate where the template comes via Mosaico message Template, sent with the email api extension.
  7. Some other internally generated message, e.g. the one you might get when an activity is assinged.
  8. Emails created from the Send Email (without CiviMail) action, which I presume is the same as when you add a Send Email activity(?)
  9. Scheduled Reminder emails.


  • which system would be used when Flexmailer is set to Auto?

  • what would be the implications of having flexmailer forced in the settings?

  • any other things I ought to know ;-)

1 Answer 1


Traditional mails are mailings sent with the old WYSIWYG interface that is part of CiviCRM "core", i.e. not Mosaico, the block layout editor, provided by the Mosaico extension.

Quoting a random comment in Flexmailer:

FlexMailer is [...] a heavily reorganized version of the old MailingJob::deliver*() functions

If I recall correctly, one of the aims of Flexmailer was to deprecate large chunks of CiviMail code that have become a bit messy. Many function in CRM_Mailing_BAO_Mailing have been flagged as deprecated as a result. Message Templates are not affected.

Mosaico depends on Flexmailer, but to avoid disruption, CiviCRM lets administrators opt-in to the new flexmailer delivery features, using the setting you mention (Traditional Mailing Handler).

At some point in the future, CiviCRM will default to always using Flexmailer (which is why it is now shipped in core).

So if the setting is set to:

  • Automatic: The opt-in will be done when CiviCRM decides to enable it.
  • BAO: Force the old behaviour, assuming that when "automatic" switches to Flexmailer, there will be a grace period to allow still using the old code.
  • Flexmailer: force traditional mailings to use the new Flexmailer delivery code.

You probably know more about Flexmailer than I do, but it's a good question and it did not have any answers. Feel free to correct me if I got anything wrong!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.