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

@ -1,49 +1,170 @@
== Changelog ==
= 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 (InvalidClientTokenId, SignatureDoesNotMatch, InvalidAccessKeyId). All other AWS errors — wrong region, missing IAM permission, SES not enabled in region, network timeouts — allow saving so the user is not locked out.
* Reply-to email field cannot be cleared: submitting an empty value now explicitly removes the stored address. The parent plugin preserves the existing value when empty is submitted; this filter corrects that behavior.
**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. The plugin code only uses APIs available since WordPress 5.7 (the `pre_wp_mail` filter), verified by static analysis with wp-compat. Note: on WordPress 5.76.4, the `Requires Plugins` dependency header is not enforced by the platform.
**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.
_Release date: 2026-06-09_
**Fixed**
* Nonce handling in manual quota refresh now correctly handles `false` values returned by `filter_input()`.
* Admin notices display now skips non-array notice entries.
* Input normalization for recipients, attachments, and headers now properly skips non-string values instead of attempting unsafe casts.
**Changed**
* Removed unused internal rate limit application method.
**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.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-02-12_
**Fixed**
* Charset encoding issue that caused "expected parameter value, got null" error when sending emails through Amazon SES.
* Charset validation in header parsing now prevents empty or invalid charset values.
* Charset handling falls back to UTF-8 when no valid charset is provided.
**Compatibility**
* WordPress: 6.5 - 6.9
* PHP: 8.2 - 8.4
= 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.
_Release date: 2026-02-09_
**Added**
* Comprehensive Amazon SES debug context to test email error reports: 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).
**Security**
* Access keys are now masked in error output, showing only the first and last 4 characters.
**Compatibility**
* WordPress: 6.5 - 6.9
* PHP: 8.2 - 8.4
= 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.
* Simplified uninstall.php to delegate all cleanup responsibility to core SMTP plugin.
_Release date: 2026-02-09_
**Changed**
* Uninstall behavior: the add-on no longer performs cleanup on its own uninstall. All data cleanup — including Amazon SES credentials — is now handled by the core SMTP plugin when it is uninstalled. This ensures credentials are preserved if only the add-on is removed.
**Compatibility**
* WordPress: 6.5 - 6.9
* PHP: 8.2 - 8.4
= 2.0.1 =
* Version bump for maintenance release.
_Release date: 2026-01-30_
**Changed**
* Maintenance release with minor internal fixes.
**Compatibility**
* WordPress: 6.5 - 6.9
* PHP: 8.2 - 8.4
= 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.
* Improved credential handling and encryption.
* Code quality improvements and documentation.
* **BREAKING CHANGE**: Minimum PHP version increased to 8.2 (required by AWS SDK for PHP).
* Updated AWS SDK for PHP to latest version with security updates.
_Release date: 2026-01-29_
**Added**
* Reply-To header support for emails sent through Amazon SES.
**Changed**
* Minimum PHP version increased to 8.2. Required by the AWS SDK for PHP.
* Updated AWS SDK for PHP to version 3.369.20 with security patches.
**Compatibility**
* WordPress: 6.5 - 6.9
* PHP: 8.2 - 8.4
= 1.0.0 =
* Initial release with Amazon SES credential management, region selection, and live validation inside the SMTP plugin settings.
* Routes WordPress and SMTP test emails through Amazon SES whenever credentials are configured and verified.
_Release date: 2026-01-27_
**Highlights**
* Initial release.
**Added**
* Amazon SES credential management (IAM access key, secret key, region) inside the SMTP plugin settings.
* Live credential validation on save via the `GetAccount` API call.
* Region selector with automatic discovery of all SES-enabled AWS endpoints.
* Routes WordPress mail and SMTP test emails through Amazon SES whenever credentials are configured.
* AWS SDK for PHP v3 bundled as a Composer dependency.
**Compatibility**
* WordPress: 6.5 - 6.8
* PHP: 8.2 - 8.3