{"id":341298,"date":"2026-08-26T12:54:48","date_gmt":"2026-08-26T12:54:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/resonanz-email-rerouting\/"},"modified":"2026-08-26T12:54:34","modified_gmt":"2026-08-26T12:54:34","slug":"resonanz-email-rerouting","status":"publish","type":"plugin","link":"https:\/\/so.wordpress.org\/plugins\/resonanz-email-rerouting\/","author":23099239,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"7.1","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Resonanz Email Rerouting","header_author":"Resonanz Digital","header_description":"This plugin is intended to make testing websites easier. It reroutes emails to a specific address based on the environment (local, development, staging). For this plugin to work correctly, be sure to set the environment variable in your wp-config.php file.","assets_banners_color":"","last_updated":"2026-08-26 12:54:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.resonanz-digital.at\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.0":{"tag":"1.5.0","author":"resonanzdigital","date":"2026-08-26 12:54:34"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[734,267,200295,19979,1591],"plugin_category":[41],"plugin_contributors":[232368],"plugin_business_model":[],"class_list":["post-341298","plugin","type-plugin","status-publish","hentry","plugin_tags-development","plugin_tags-email","plugin_tags-rerouting","plugin_tags-staging","plugin_tags-testing","plugin_category-communication","plugin_contributors-resonanzdigital","plugin_committers-resonanzdigital"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/resonanz-email-rerouting.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Resonanz Email Rerouting makes testing websites safer by rerouting outgoing emails to a specific address based on the current environment (local, development, staging, production), as defined by the <code>WP_ENVIRONMENT_TYPE<\/code> constant in your <code>wp-config.php<\/code> file.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Reroute emails based on <code>WP_ENVIRONMENT_TYPE<\/code>.<\/li>\n<li>Enable or disable email rerouting on a per-environment basis.<\/li>\n<li>Add domains to a whitelist to avoid rerouting mail sent to those domains.<\/li>\n<li>Add one or more email addresses to which emails should be rerouted.<\/li>\n<li>Grant different user roles access to the plugin settings.<\/li>\n<li>Add a prefix to the subject line of rerouted emails.<\/li>\n<li>Append a message to the body of rerouted emails.<\/li>\n<li>Display a notification to the logged-in user when an email has been rerouted.<\/li>\n<li>Enable or disable simple email logging, including a retention policy.<\/li>\n<li>Easily export and import settings in JSON format.<\/li>\n<li>Works with Gravity Forms and Contact Form 7.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Configure the environment variable in <code>wp-config.php<\/code> (see FAQ below).<\/li>\n<li>Upload the entire <code>resonanz-email-rerouting<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20set%20the%20environment%20variable%3F\"><h3>How do I set the environment variable?<\/h3><\/dt>\n<dd><p>You can set the environment variable in your <code>wp-config.php<\/code> file. Add a line like the following:<\/p>\n\n<pre><code>define('WP_ENVIRONMENT_TYPE', 'local');\n<\/code><\/pre>\n\n<p>For further information, see the WordPress documentation: https:\/\/developer.wordpress.org\/apis\/wp-config-php\/#wp-environment-type<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20other%20email%20related%20plugins%3F\"><h3>Does this plugin work with other email related plugins?<\/h3><\/dt>\n<dd><p>We cannot guarantee that this plugin will function as expected if you use other email-related plugins.<\/p>\n\n<p>If you have a plugin that makes use of SMTP, you should probably disable it for this plugin to work correctly.<\/p>\n\n<p>If you encounter specific issues, please let us know.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20further%20help%3F\"><h3>Where can I find further help?<\/h3><\/dt>\n<dd><p>If you require assistance, feel free to email us at wordpress@resonanz-digital.at.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Hardened sanitization of saved settings: role permission keys are now validated against the roles WordPress actually offers.<\/li>\n<li>Settings import now runs through the same sanitizer as the settings form, so imported files can no longer store unsanitized values.<\/li>\n<li>Prefixed the AJAX, admin-post and log-purge action names to avoid collisions with other plugins.<\/li>\n<li>Prefixed the email log meta keys. Existing logs are migrated automatically on upgrade.<\/li>\n<li>Added nonce verification to both AJAX endpoints.<\/li>\n<li>Fixed settings import rejecting every file. The uploaded file is now identified correctly.<\/li>\n<li>Fixed settings import failing on Windows servers because the upload path was altered before use.<\/li>\n<li>Renamed an internal helper that shadowed WordPress core's <code>sanitize_email()<\/code>.<\/li>\n<li>Updated \"Tested up to\" for WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Hardened input handling and output escaping throughout the plugin (Plugin Check compliance).<\/li>\n<li>Fixed per-environment settings (whitelisted domains and reroute addresses) not being sanitized on save.<\/li>\n<li>Fixed role capabilities lagging one save behind when permissions were changed.<\/li>\n<li>Fixed the bundled German translation not loading (translation files renamed to match the text domain).<\/li>\n<li>Added cleanup on deactivation (scheduled event) and uninstall (options, capability, and logged data).<\/li>\n<li>Switched to safe redirects and <code>gmdate()<\/code>, and added a <code>readme.txt<\/code>.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed rerouted emails crashing when <code>wp_mail()<\/code> recipient, sender, subject, or message values were passed in non-string formats.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Validation of entered email addresses in the WordPress backend.<\/li>\n<li>Performance optimizations.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Fixed a minor namespace issue that was causing an error when purging logs.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Make sure post slug is not empty.<\/li>\n<li>Some other minor code improvements.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added information to allow the plugin to be updated via Git Updater.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>First public release of the plugin.<\/li>\n<\/ul>","raw_excerpt":"Reroute WordPress emails to a test address per environment so testing never mails real users. Optional logging and settings import\/export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/341298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=341298"}],"author":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/resonanzdigital"}],"wp:attachment":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=341298"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=341298"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=341298"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=341298"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=341298"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=341298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}