Skip to content

Release Notes

DO NOT DOWNLOAD DIRECTLY FROM GITHUB Download via the extensions directory as there are additional packaging requirements not handled by github.

Release 3.7 (not yet released)

  • Update to latest upstream library.
  • #660 Update composer.json, add type:civicrm-ext to allow the Mosaico extension to be installed via Composer.
  • #664 Fix duplicate contact creation when sending a test to multiple emails when there's a space after the comma.
  • #673 Add label and description to templateType.
  • #672 Convert to EntityFrameworkV2.
  • Add compatibility declarations, remove requires for compulsory extensions.
  • #674 Civi cannot handle Drupal multilanguage path, cannot find template url.
  • Remove legacy MosaicoMsgTemplate entity (not used since Mosaico 1.x).

Release 3.6 (2024-09-06)

  • Replace htmlspecialchars with escape (Smarty5 compatibility).
  • Refactor out call to deprecated CRM_Utils_Array::value
  • Permit install of composer-dowloads-plugin v4 to support php8.3.
  • "From" and "Reply-To" lists - (Re)Enable select2 support
  • Add A/B test for "Reply-To"
  • Add A/B testing for "From" address
  • AbDemuxTest - Add demonstration of "From" variants
  • Subject List - On the add/remove button, give clearer hint
  • Fix civicrmtoken error when mosaicoConfig hook is used
  • Fix settings path

Release 3.5 (2024-03-01)

  • #638 Fix issues with labels on template selection.
  • #633 Add A/B testing for email design

Release 3.4 (2024-02-26)

  • Support guzzle 7.0
  • Update mosaico library
  • #632, #631, #630 Css, html fixes for selecting a template.
  • Replace gulpfile with node sass
  • Fix fixed width on chosen tpl display on mailing design screen

  • #627 Move navigation menu items declarations to managed entities.

  • #620 Update info.xml to link to correct page to download from and whereto report issues.

Release 3.3 (2023-10-15)

  • #617 Angular - Switch to settingsFactory.
  • #612 Fix notice error about no buffer to flush.
  • #609 Add pseudoconstant for base template and regenerate DAOs.

Release 3.2 (2023-08-03)

  • Update to Mosaico library v0.18.10 (was v0.18.9).
  • #510 Add support for TinyMCE translations.
  • #572 Resolve #572 by ensuring that the value of the base template option is the name of the base template not the title.
  • #597 Specify 'match' in mgd.php files.

Release 3.1 (2023-06-21)

  • Fix #596 Fix image placeholders and translation.

Release 3.0 (2023-06-08)

Major change: Mosaico library and versafix template updated to latest versions (0.18.9, 1.3.4)

  • Update mosaico library to latest version (0.18).
  • #593 Enhance api call replaceurls.

Release 2.12 (2023-04-22)

  • #577 5.60 compatibility.

Release 2.11 (2023-02-14)

  • #569 Use more standard param for pragma header.
  • #568 On WordPress mosaico/img may have a / after - teach the regex to replace this with static images. Fixes performance issues with bulk mailings on WordPress sites.
  • Test fixes / PHP8.2 compatibility fixes.
  • #549 Improve performance (response time) of image processing backend.
  • #554 Template path fixes.
  • Library updates.
  • #541 Fix 2.10 upgrade from command line.

Release 2.10

  • Fix #539 Fix issue with urls that are double url encoded.
  • Fix issue where by some large placeholders aren't rendering behind application load balancers.
  • Fix broken images when not logged in - accidently changed with multisite patches.
  • #489 Add validation rule to Mosaico uploader.
  • #536 Pass in String null so that db field is set to NULL.
  • #533 Add type hint to return value.
  • #530 Multisite support for search kit templates display.
  • #532 Fix tests following #529.
  • #410 Multisite support for mosaico.
  • #528 Various updates for develop.md.
  • #525 Download Mosaico JS files via composer-downloads-plugin.
  • #512 Define customTemplatesUrl absolute as templatesUrl.
  • #523 Fix crash when installing via CLI.
  • #520 Update civix templates.
  • #508 Bump postcss from 5.2.18 to 7.0.36.
  • #501 Switch newsletter category to one-time insert instead of managed.
  • #507 Use CiviCRM core Guzzle dependencies.
  • #500 Default orderBy Title on template listing search display.
  • #502 Add APIv4 permissions for MosaicoTemplate.
  • Switch newsletter category to one-time insert instead of a managed entity.
  • Default orderBy Title on template listing search display.
  • #496 Don't add the "schedule/send via CiviMail" search task, if the user has insufficient permissions.
  • #488 Validate multiple email when testing.
  • #490 Loosen restrictions on required fields.
  • #493 Ensure that when tests are run search kit is installed.
  • #485 Remove crmStar styling, require Bootstrap3.

Release 2.9

  • #478 Add Mosaico Template Listing page based on Searchkit.
  • Add template "Categories" and allow them to be filtered in the UI.
  • #470 Add hooks to alter Mosaico plugins

Release 2.8

  • #456 Add hooks to alter relevant assets in the Mosaico interface.
  • #462 PHP7.4 compatibility - Fix usage of Curly brackets to do array access.
  • #463 Improve error handling on image params.
  • #468 Allow users to choose hotlist tokens.
  • #472 / #444 Auto-save after idle-timeout (~4s) and/or active-timeout (~90s)

Release 2.7

  • #440 Add support for personalized tokens for "View in your browser" mode.
  • #451 Update unit tests to work with phpunit8.
  • #452 Use Generic Settings Form rather than our custom form. Fix for issue #427
  • #427 Update AutoGenerated DAO, Civix, auto_install files to be latest versions from civix commands.
  • #437 phpunit8 testing compatibility.
  • #433 Throw error message on resizing image and prevent hard fail.
  • #414 Add setting to hide base templates.

Release 2.6

  • #321 Introduce A/B testing for subject lines.
  • #406 Fix for mosaico placeholder images not accessible in joomla.
  • #409 Fix Leave site? warning when not required.
  • #412 Use standard methods and add validation to URL params for placeholder image endpoint.

Release 2.5

  • Fix #319 Warn user before clicking away from mosaico editor.
  • #388 Adds bullets (unorderd list) to editor
  • #389 #390 Fix placeholder images showing on Drupal8, Wordpress.

Release 2.4

Features

  • #345 Use mosaico graphics service to resize thumbnail.
  • #352 Make spell check available directly in mosaico.
  • #374 Add API method to update template URLs.
  • #371 Provide better support for high resolution images in mosaico.
  • Improvements to documentation.

Fixes

  • Fix path to translation files.
  • #376 Fix issue with image rendering (sometimes output buffer started by another module or plugin causes problem with image rendering).
  • Update composer libraries for PHP7.3 support.
  • Update Mosaico Services to be compatible with Symfony 4.
  • Update npm dependencies.
  • PHPUnit configuration compatible with PHPUnit6 and PHPUnit7.
  • Various tweaks for compatibility if using Shoreditch theme.

Release 2.3

  • Change image placeholder permissions (Fixes issue with image placeholders for some sites).

Release 2.2

  • Allow sending traditional emails as a search task.
  • Improve validation in image processing.
  • Move maximum image size into a setting.
  • Drop system check for shoreditch theme as it is not required for Mosaico to function.
  • Improve browser incompatibility message.
  • Sort templates alphabetically when displaying 'New Mailing'.
  • Add translation support - the Mosaico editor will now appear in the same language as CiviCRM if language files are available.

Release 2.1

  • Always place iframe below KAM menu instead of behind.
  • Replace 'TITLE<title>' with subject (render-time).</li> <li>Document hook_civicrm_mosaicoConfig.</li> </ul> <h2 id="release-20">Release 2.0<a class="headerlink" href="#release-20" title="Permanent link">¶</a></h2> <p>All users of Mosaico should evaluate and upgrade to this release.</p> <ul> <li>Simplify requirements:</li> <li>The shoreditch theme is not required - the extension will work with the current CiviCRM theme.</li> <li>ImageMagick is not required - the extension will auto-detect between imagemagick and gd depending on what the server supports.</li> <li>Reduce memory usage which previously caused issues sending mail on some servers.</li> <li>Add a hook for mosaico editor configuration.</li> </ul> <p><strong>Download link: https://civicrm.org/extensions/mosaico-civicrm-integration/version-20</strong></p> </article> </div> </div> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> <a href="../testing/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Testing" rel="prev"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Previous </span> Testing </div> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <ul class="md-footer-meta__breadcrumbs"> <li><a href="https://docs.civicrm.org">CiviCRM Documentation</a> / </li> <li><a href=".." title="Mosaico Responsive Email Template Editor">Mosaico Responsive Email Template Editor</a></li> <li>/ Release Notes</li> </ul> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> <p> © 2005 - 2025, CIVICRM LLC. All rights reserved. CiviCRM and the CiviCRM logo are trademarks of CIVICRM LLC. </p> <p> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </p> <p> <a rel="license" href="http://creativecommons.org/licenses/by/3.0/us/"> <img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/3.0/us/88x31.png" /> </a> <br /> Except where otherwise noted, content on this site is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/us/">Creative Commons Attribution 3.0 United States License</a>. </p> </div> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": "..", "features": "toc.integrate", "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "../assets/javascripts/workers/search.f8263e09.min.js", "version": null}</script> <script src="../assets/javascripts/bundle.4fc53ad4.min.js"></script> </body> </html>