== 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 = _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.7–6.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 = _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 = _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 = _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. **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 = _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 = _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 = _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 = _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