yireo / magento2-emailtester2

yireo/magento2-emailtester2

Preview transactional emails and test send them in your backend

  • Jisse Reitsma (Yireo)
magento2-module Compatibility: 2.4.7-2.4.9 Code Quality: Fail Tests: Pass Security: Pass OSL-3.0

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

Unreleased

[1.7.10] - 09 June 2026

Fixed

  • Fix Symfony 7 compatibility to CLI commands

[1.7.9] - 24 April 2025

Fixed

  • Fix for Symfony Mailer in Magento 2.4.8

[1.7.8] - 5 November 2024

Fixed

  • Properly implement yireo/magento2-admin-simple-search-fields

[1.7.7] - 5 November 2024

Fixed

  • Add dep yireo/magento2-admin-simple-search-fields

[1.7.6] - 24 October 2024

Fixed

  • Re-release under GitHub

[1.7.5] - 24 October 2024

Fixed

  • Add funding options

[1.7.4] - 11 July 2023

Fixed

  • Fix access level issue after 1.7.3 #11 @Phennim

[1.7.3] - 11 July 2023

Fixed

  • Fix PHP 8.2 deprecation warnings #10 @Phennim

[1.7.2] - 19 April 2023

Fixed

  • Change composer name of React module
  • Update XML structure to fix fields not being picked up

[1.7.1] - 25 March 2023

Fixed

  • Swap dep of ExtensionChecker with core module info

[1.7.0] - 24 March 2023

Added

  • Added dependency with new Yireo_AdminReactComponents module

[1.6.25] - 8 November 2022

Fixed

  • Calculate if order is virtual by using products

[1.6.24] - 31 July 2022

Fixed

  • Bump

[1.6.23] - 31 July 2022

Fixed

  • Bump

[1.6.22] - 31 July 2022

Fixed

  • Fix empty output in AlertGrid causing preg_replace error in Magento core

[1.6.21] - 31 July 2022

Fixed

  • Undefined flag with virtual orders (PR 2, @cloudsfactory)

[1.6.20] - 26 June 2022

Fixed

  • Copy shipping address from billing address when empty
  • Fix PHP 8.1 error with Magento AlertGrid (issue 35569)

[1.6.21] - 11 July 2022

Fixed

  • Version bump

[1.6.20] - 28 June 2021

Fixed

  • Version bump

[1.6.19] - 12 August 2021

Fixed

  • Prevent duplicate AJAX call when searching in modal popup

[1.6.18] - 17 May 2021

Fixed

  • Cleanup of DI code
  • Use General Contact as a fallback
  • Fix for "Send" not picking up on right variables anymore

[1.6.17] - 13 April 2021

Fixed

  • Prevent exception when order exists with no invoice

[1.6.16] - 2 March 2021

Fixed

  • Remove fake shipping ID because it will only generate an error

[1.6.15] - 1 March 2021

Fixed

  • Fixed missing shipping_id

[1.6.14] - 1 March 2021

Fixed

  • Fixed missing invoice_id and creditmemo_id just in case

[1.6.13] - 26 February 2021

Fixed

  • Remove yarn.lock
  • Fixed missing order_id
  • De-duplicate address code of both Order and OrderVars class

[1.6.12] - 19 December 2020

Fixed

  • Re-add setup_version for Magento 2.2 compatibility

[1.6.11] - 30 November 2020

Fixed

  • Use better method to inject form values in preview URL

Added

  • Add new customer note variables (2.4+)
  • Documented non-extension issue on outdated templates (FAQ)

[1.6.10] - 19 November 2020

Fixed

  • Make sure form values for product, order and customer are transferred to preview

[1.6.9] - 2 November 2020

Fixed

  • Change form IDs to become more unique to avoid conflicts with other extensions

[1.6.8] - 30 October 2020

Fixed

  • Change namespace of UiComponents buttons (preview) to avoid conflicts with other mixins

[1.6.7] - 28 July 2020

Fixed

  • Bump Magento 2.4 dependencies

[1.6.6] - 23 July 2020

Fixed

  • Remove all unneeded CSS from preview page

[1.6.5] - 21 July 2020

Fixed

  • Set order ID when creating dummy shipment
  • Upgrade tests to PHPUnit 8+ (Magento 2.4 compatible)

[1.6.4] - 30 June 2020

Added

  • Enhance integration tests for AJAX URLs
  • Allow for customer search based on full name
  • Allow column sorting in search popups for products, orders and customers

Removed

  • Remove setup_version because there is no setup

Fixed

  • Show messages on empty data right away on page
  • Additional compliance to PHP CodeSniffer

[1.6.3] - 3 June 2020

Added

  • Cleaned up configuration section
  • Fix CSS issue in header
  • Cleanup outdated jQuery autocomplete files

[1.6.2] - 19 May 2020

Added

  • Little footer in preview to show email subject

[1.6.1] - 12 May 2020

Fixed

  • Fix issue with admin keys for Preview page
  • Fix order_data not working, with empty greeting in order emails

[1.6.0] - 9 May 2020

Added

  • Open a tab when previewing
  • Reuse react_loader.html Knockout HTML
  • Initialize components via UiComponent XML

[1.5.0] - 21 April 2020

Added

  • Major rewrite of UiComponents using React to increase usability of searching for products, customers and orders

[1.4.3] - 10 December 2019

Fixed

  • Performance fix for checking if there are any products, customers or orders
  • Add default value 50 for limiting collections

[1.4.2] - 31 October 2019

[1.4.1] - 30 October 2019

Fixed

  • New CLI did not properly translate per Store View

[1.4.0] - 29 October 2019

Added

  • List all available transactional emails via the CLI (bin/magento yireo_emailtester2:list)
  • Send mails via the CLI (bin/magento yireo_emailtester2:send)

[1.3.3] - 28 October 2019

Fixed

  • Remove debugging statement

[1.3.2] - 28 October 2019

Fixed

  • Make sure "store_phone" (and other variables) switch per scope (Website) properly
  • Allow to set Sender in Store Configuration and/or form

[1.3.1] - 16 October 2019

Fixed

  • Fix issue with invoice items not showing in table

Added

  • Support for event email_shipment_set_template_vars_before`

[1.3.0] - 12 October 2019

Fixed

  • Fix issue with return value in M2.3.3
  • Remove PHP requirement in composer
  • Remember form values in forms

Added

  • Basic MFTF support

[1.2.2] - September 2019

Added

  • Initial MFTF navigation test

[1.2.1] - July 2019

Added

  • Add missing etc/config.xml
  • Move configuration to separate Yireo section

[1.2.0] - April 2019

Changed

  • Converted CHANGELOG to KeepAChangelog format

Added

  • Add Config class to phase out data-helper
  • Add suggestion of entering config values
  • Add some UI improvements for using autocomplete field
  • Add module version to main page

[1.1.9] - February 2019

Changed

  • Duplicate environment emulation in alertGrid caused "theme_dir" error

[1.1.8] - February 2019

Changed

  • Refactoring of Zend Mime to ZF3 causes failure

[1.1.7] - February 2019

Changed

  • Fix issue with changed event email_order_set_template_vars_before in M2.3

[1.1.6] - January 2019

Changed

  • Passing array to email_order_set_template_vars_before causes Fatal Error

[1.1.5] - January 2019

Changed

  • Add complete GitLab pipeline with live Magento checks
  • Try to load proper address before formatting it

[1.1.4] - November 2018

Changed

  • Rename "Email Tester" to "EmailTester" for marketplace

[1.1.3] - November 2018

Changed

  • Magento 2.3 compatibility

[1.1.2] - November 2018

Changed

  • Minor CSS improvements

[1.1.1] - November 2018

Changed

  • Prevent invalid order ID to throw unwanted exception
  • Fix untested issue in product exception

[1.1.0] - September 2018

Changed

  • Add AlertGrid support
  • Tighten composer dependencies

[1.0.5] - September 2018

Changed

  • Fix shipment items in shipment email
  • Add addresses to shipment emails
  • Testing with Magento 2.2.6 approved without any issues

[1.0.4] - August 2018

Changed

  • Supply extra variables
  • Fix checkout_payment_failed_template email
  • Add Integration Test to test all preview emails automatically

[1.0.3] - August 2018

Changed

  • Bugfix for backend template email override not working
  • Add proper CHANGELOG.md

[1.0.2] - August 2018

Changed

  • Add Trait to check for database statistics
  • Fix error with adminhtml mails that don't properly set area

[1.0.1] - July 2018

Changed

  • ExtDN compliance

[1.0.0] - June 2018

Changed

  • Rewrite manual form into UiComponent form
  • Magento ECG compliance
  • Add unit testing and integration testing
  • Only compatible with Magento 2.2 and up

Removed

  • Compatibility with 2.1 in favor of ViewModels

[0.2.12] - May 2018

Changed

  • Remove unneeded composer dev requirements

[0.2.11] - January 2018

Changed

  • Fix notice when no creditmemos are available

[0.2.10] - December 2017

Changed

  • Change title in backend menu

[0.2.9] - November 2017

Changed

  • Code beautification

[0.2.8] - October 2017

Changed

  • Fix fatal error when Store View is incorrectly configured

[0.2.7] - September 2017

Changed

  • Add basic Jasmine JS testing

[0.2.6] - August 2017

Changed

  • Code cleanup

[0.2.5] - August 2017

Changed

  • Fix compilation issues due to 1 PHP notice

[0.2.4] - August 2017

Changed

  • EQP compliance
  • Raise PHP requirement to PHP7

[0.2.3] - May 2017

Changed

  • Remove adminhtml XML layout handles which cause wrong CSS

[0.2.2] - April 2017

Changed

  • Add events email_order_set_template_vars_before and emailtester_variables

[0.2.1] - April 2017

Changed

  • Version bump

[0.2.0] - February 2017

Changed

  • Added Store View filter
  • Move all files from source/ to package root (M2.1 compliance)

[0.1.5] - November 2016

Changed

  • Fix for loading theme-specific templates

[0.1.4] - September 2016

Changed

  • Code compliance

[0.1.3] - August 2016

Changed

  • Load entities only by catching exceptions

[0.1.2] - August 2016

Changed

  • Fix DI compilation issue with wrong $context usage
  • Implement mail functionality

[0.1.1] - August 2016

Changed

  • Packaging issue

[0.1.0] - July 2016

Changed

  • Initial public release
  • Working edition with main variables
  • Some unit tests
  • Pending documentation
Versions
Version Stability QA Status Compatibility Released
1.7.10 stable Fail Magento 2.4.7-2.4.9 Details 2026-06-09 08:45:00
1.7.9 stable Not tested Not yet tested Details 2025-10-31 10:09:42
1.7.8 stable Not tested Not yet tested Details 2024-11-05 15:33:18
1.7.7 stable Not tested Not yet tested Details 2024-11-05 09:49:18
1.7.6 stable Not tested Not yet tested Details 2024-10-24 13:34:38
1.7.5 stable Not tested Not yet tested Details 2024-10-24 12:28:21
1.7.4 stable Not tested Not yet tested Details 2023-07-11 13:58:34
1.7.3 stable Not tested Not yet tested Details 2023-07-11 12:38:19
1.7.2 stable Not tested Not yet tested Details 2023-04-19 06:56:58
1.7.1 stable Not tested Not yet tested Details 2023-03-25 14:44:19
1.7.0 stable Not tested Not yet tested Details 2023-03-24 13:53:37
1.6.25 stable Not tested Not yet tested Details 2022-11-08 13:41:04
1.6.24 stable Not tested Not yet tested Details 2022-07-31 11:46:00
1.6.23 stable Not tested Not yet tested Details 2022-07-31 11:44:09
1.6.22 stable Not tested Not yet tested Details 2022-07-31 11:06:29
1.6.21 stable Not tested Not yet tested Details 2022-07-11 12:31:08
1.6.20 stable Not tested Not yet tested Details 2022-06-26 18:50:24
1.6.19 stable Not tested Not yet tested Details 2022-05-05 07:27:19
1.6.18 stable Not tested Not yet tested Details 2021-05-17 07:13:53
1.6.16 stable Not tested Not yet tested Details 2021-03-02 16:21:38
1.6.17 stable Not tested Not yet tested Details 2021-03-02 16:21:38
1.6.15 stable Not tested Not yet tested Details 2021-03-01 15:06:35
1.6.14 stable Not tested Not yet tested Details 2021-03-01 11:08:51
1.6.13 stable Not tested Not yet tested Details 2021-02-26 16:37:44
1.6.12 stable Not tested Not yet tested Details 2020-12-19 16:18:17
1.6.11 stable Not tested Not yet tested Details 2020-11-30 09:35:58
1.6.10 stable Not tested Not yet tested Details 2020-11-19 17:26:39
1.6.9 stable Not tested Not yet tested Details 2020-11-02 11:36:28
1.6.8 stable Not tested Not yet tested Details 2020-10-30 09:08:46
1.6.6 stable Not tested Not yet tested Details 2020-07-23 09:15:08
1.6.5 stable Not tested Not yet tested Details 2020-07-21 08:54:56
1.6.4 stable Not tested Not yet tested Details 2020-06-30 10:47:40
1.6.2 stable Not tested Not yet tested Details 2020-05-19 13:18:33
1.6.1 stable Not tested Not yet tested Details 2020-05-12 11:57:30
1.6.0 stable Not tested Not yet tested Details 2020-05-09 15:29:22
1.5.0 stable Not tested Not yet tested Details 2020-04-21 09:21:49
1.4.3 stable Not tested Not yet tested Details 2019-12-10 17:52:47
1.4.2 stable Not tested Not yet tested Details 2019-10-31 07:42:34
1.4.1 stable Not tested Not yet tested Details 2019-10-30 16:33:38
1.4.0 stable Not tested Not yet tested Details 2019-10-29 16:39:11
1.3.3 stable Not tested Not yet tested Details 2019-10-28 16:11:35
1.3.2 stable Not tested Not yet tested Details 2019-10-28 13:16:20
1.3.1 stable Not tested Not yet tested Details 2019-10-16 09:44:57
1.3.0 stable Not tested Not yet tested Details 2019-10-14 15:30:22
1.2.1 stable Not tested Not yet tested Details 2019-07-08 10:37:51
1.2.0 stable Not tested Not yet tested Details 2019-04-17 15:13:19
1.1.10 stable Not tested Not yet tested Details 2019-03-19 20:41:22
1.1.9 stable Not tested Not yet tested Details 2019-02-21 13:58:05
1.1.8 stable Not tested Not yet tested Details 2019-02-18 18:08:01
1.1.7 stable Not tested Not yet tested Details 2019-02-04 16:29:37
1.1.6 stable Not tested Not yet tested Details 2019-01-09 14:35:06
1.1.5 stable Not tested Not yet tested Details 2019-01-08 18:25:49
1.1.4 stable Not tested Not yet tested Details 2018-11-30 10:14:54
1.1.3 stable Not tested Not yet tested Details 2018-11-29 20:11:04
1.1.1 stable Not tested Not yet tested Details 2018-11-14 13:01:19
1.1.0 stable Not tested Not yet tested Details 2018-09-22 07:58:22
1.0.5 stable Not tested Not yet tested Details 2018-09-21 19:32:08
1.0.4 stable Not tested Not yet tested Details 2018-08-16 16:51:06
1.0.3 stable Not tested Not yet tested Details 2018-08-16 11:06:47
1.0.2 stable Not tested Not yet tested Details 2018-08-15 18:45:09
1.0.1 stable Not tested Not yet tested Details 2018-08-03 19:07:03
0.2.12 stable Not tested Not yet tested Details 2018-05-12 14:19:40
0.2.11 stable Not tested Not yet tested Details 2018-01-18 17:29:05
0.2.10 stable Not tested Not yet tested Details 2017-10-17 14:15:06
0.2.9 stable Not tested Not yet tested Details 2017-10-17 12:39:19
0.2.8 stable Not tested Not yet tested Details 2017-10-17 07:41:13
0.2.7 stable Not tested Not yet tested Details 2017-10-13 16:28:20
0.2.6 stable Not tested Not yet tested Details 2017-10-11 08:18:11
0.2.5 stable Not tested Not yet tested Details 2017-08-18 10:35:38
0.2.4 stable Not tested Not yet tested Details 2017-08-16 14:26:39
0.2.3 stable Fail Not compatible Details 2017-05-28 17:55:16
0.2.2 stable Not tested Not yet tested Details 2017-04-14 08:55:05
0.2.1 stable Not tested Not yet tested Details 2017-04-08 08:41:14
0.2.0 stable Not tested Not yet tested Details 2017-02-10 10:04:21
0.1.6 stable Not tested Not yet tested Details 2017-01-18 09:59:40
0.1.4 stable Not tested Not yet tested Details 2016-11-29 17:27:54
0.1.5 stable Not tested Not yet tested Details 2016-11-29 17:27:54
0.1.3 stable Not tested Not yet tested Details 2016-08-11 14:08:32
0.1.2 stable Not tested Not yet tested Details 2016-08-09 16:17:58
0.1.1 stable Not tested Not yet tested Details 2016-08-02 15:37:34
0.1.0 stable Not tested Not yet tested Details 2016-02-02 17:28:09

Requires 19

Package Constraint
ext-json *
ext-pcre *
magento/framework ^101.0.1|^101.1|^102.0|^103.0
magento/module-backend ^100.0|^101.0|^102.0
magento/module-catalog ^101.0|^102.0|^103.0|^104.0
magento/module-config ^100.0|^101.0
magento/module-customer ^100.0|^101.0|^102.0|^103.0
magento/module-eav ^100.0|^101.0|^102.0
magento/module-email ^100.0|^101.0
magento/module-payment ^100.0
magento/module-product-alert ^100.4
magento/module-quote ^100.0|^101.0
magento/module-sales ^100.0|^101.0|^102.0|^103.0
magento/module-store ^100.0|^101.0
magento/module-ui ^101.0
psr/log ^1.0|^2.0|^3.0
symfony/console ^6.0|^7.0
symfony/mime ^6.0|^7.0
yireo/magento2-admin-simple-search-fields ^1.0

Requires-dev 1

Package Constraint
yireo/magento2-integration-test-helper ~0.0

Compatibility

Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.

Compatibility matrix (Magento × PHP)
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Pass Pass
2.4.8 Pass Pass
2.4.9 Pass Pass

Code Quality

Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.

Static analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

Static analysis results
Tool Status Findings Summary
PHPCS Warning 24 24 warnings (ruleset: Magento2) — 6 auto-fixable with phpcbf
PHPMD Warning 6 6 rule violations (UnusedFormalParameter:3, UnusedLocalVariable:2, ExcessiveParameterList:1)
Cpd Pass 0
Composer validate Info 1 valid; 1 advisory note (composer validate --strict)

PHPStan

Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.

PHPStan results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 3 3
2.4.8 3 3
2.4.9 3 3

Tests

Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.

Unit tests

Unit tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Integration tests

Integration tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Pass not tested
2.4.8 Pass Pass
2.4.9 Pass not tested

Security

Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.

Security results
Tool Status Findings Summary
Composer audit Pass 0
Malware scan Pass 0
License
OSL-3.0
Homepage
https://www.yireo.com/software/magento-extensions/emailtester2
Authors

More from yireo

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.