This commit is contained in:
Javier Casares 2026-06-09 12:55:04 +00:00
commit 6269b77f13
11 changed files with 741 additions and 469 deletions

View file

@ -3,9 +3,9 @@ Contributors: javiercasares
Tags: amazon-ses, smtp, email, mail
Requires at least: 5.7
Tested up to: 7.1
Stable tag: 2.1.4
Stable tag: 2.1.5
Requires PHP: 8.2
Version: 2.1.4
Version: 2.1.5
License: GPL-3.0-or-later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
@ -34,52 +34,102 @@ SMTP (by ROBOTSTXT) Amazon SES extends the core ROBOTSTXT SMTP plugin with a fir
= Do I need the base SMTP plugin? =
Yes. This add-on depends on the core **SMTP (by ROBOTSTXT)** plugin for the settings interface, logging, and overall mail routing logic.
Yes. This add-on depends on the core **SMTP (by ROBOTSTXT)** plugin for the settings interface, logging, and overall mail routing logic. If the base plugin is missing or inactive, this add-on will show an admin notice and will not run.
= Are my credentials validated? =
The plugin validates Amazon SES credentials during saving to prevent misconfigurations. Errors appear directly on the SMTP settings page if authentication fails.
The plugin validates Amazon SES credentials during saving to prevent misconfigurations. Only definitive authentication errors (invalid access key or secret) will block saving. If the IAM user lacks the `ses:GetAccount` permission or there is a network issue, the credentials are still saved and will be used for sending.
= Does the plugin support multisite? =
Yes. Network administrators can manage credentials centrally or allow individual sites to configure their own Amazon SES connection.
== Compatibility ==
* WordPress: 5.7 - 7.1
* PHP: 8.2 - 8.5
== Changelog ==
Only the 3 last versions. The full changelog will be at changelog.txt
= 2.1.5 =
_Release date: 2026-06-09_
**Added**
* Runtime check at initialization: if the parent SMTP (by ROBOTSTXT) plugin is missing or inactive, the plugin skips initialization and displays an admin notice instead of producing a fatal error.
**Fixed**
* Credentials never saving on first entry: credential validation now only blocks saving for definitive authentication failures. All other AWS errors allow saving.
* Reply-to email field cannot be cleared: submitting an empty value now explicitly removes the stored address.
**Compatibility**
* WordPress: 5.7 - 7.1
* PHP: 8.2 - 8.5
**Tests**
* PHP_CodeSniffer: 3.13.5
* WordPress Coding Standards: 3.3.0
* PHPCompatibility: 9.3.5
* PHPStan: 2.2.2
= 2.1.4 =
* Updated minimum WordPress version to 5.7 (the actual code minimum, verified by static analysis).
_Release date: 2026-06-09_
**Changed**
* Minimum WordPress version lowered from 6.5 to 5.7, reflecting the actual code minimum verified by static analysis.
**Compatibility**
* WordPress: 5.7 - 7.1
* PHP: 8.2 - 8.5
**Tests**
* PHP_CodeSniffer: 3.13.5
* WordPress Coding Standards: 3.3.0
* PHPCompatibility: 9.3.5
* PHPStan: 2.2.2
= 2.1.3 =
* Fixed nonce handling in manual quota refresh to correctly handle false values returned by filter_input().
* Fixed admin notices display to skip non-array notice entries.
* Fixed input normalization for recipients, attachments, and headers to properly skip non-string values instead of attempting unsafe casts.
* Removed unused internal method (dead code cleanup).
* Updated compatibility: tested up to WordPress 7.1.
* Internal: renamed updater file to follow WordPress naming conventions.
= 2.1.2 =
* Fixed charset encoding issue that caused "expected parameter value, got null" error when sending emails through Amazon SES.
* Added robust charset validation in header parsing to prevent empty or invalid charset values.
* Enhanced charset handling with fallback to UTF-8 when no valid charset is provided.
_Release date: 2026-06-09_
= 2.1.1 =
* Added comprehensive Amazon SES debug context to test email error reports.
* Debug information now includes: AWS region, masked access key, SDK version, endpoint URL, and UTC timestamp.
* Enhanced AWS error reporting with request IDs, HTTP status codes, and error codes for easier troubleshooting.
* Improved security by masking access keys in error output (shows only first 4 and last 4 characters).
**Fixed**
= 2.1.0 =
* Changed uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin.
* This ensures Amazon SES credentials are preserved when only the add-on is removed, and properly cleaned when the core plugin is uninstalled.
* Nonce handling in manual quota refresh now correctly handles `false` values from `filter_input()`.
* Admin notices display now skips non-array notice entries.
* Input normalization for recipients, attachments, and headers now properly skips non-string values.
= 2.0.1 =
* Version bump for maintenance release.
**Compatibility**
= 2.0.0 =
* Added Reply-To header support for emails sent via Amazon SES.
* Improved error handling and validation.
* Enhanced compatibility with core SMTP plugin 2.0.0.
* **BREAKING CHANGE**: Minimum PHP version increased to 8.2 (required by AWS SDK for PHP).
* WordPress: 5.7 - 7.1
* PHP: 8.2 - 8.5
= 1.0.0 =
* Initial release.
**Tests**
* PHP_CodeSniffer: 3.13.5
* WordPress Coding Standards: 3.3.0
* PHPCompatibility: 9.3.5
* PHPStan: 2.2.2
= Previous versions =
If you want to see the full changelog, visit the [changelog.txt](https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses/raw/branch/main/changelog.txt) file.
== Compliance ==
This plugin adheres to the following security measures and review protocols for each version:
* [WordPress Plugin Handbook](https://developer.wordpress.org/plugins/)
* [WordPress Plugin Security](https://developer.wordpress.org/plugins/wordpress-org/plugin-security/)
* [WordPress APIs Security](https://developer.wordpress.org/apis/security/)
* [WordPress Coding Standards](https://github.com/WordPress/WordPress-Coding-Standards)
* [Plugin Check (PCP)](https://wordpress.org/plugins/plugin-check/)