== Changelog == = 2.1.6 = _Release date: 2026-06-09_ **Added** * Clear buttons for Access Key ID and Secret Access Key on the settings page. When a credential is stored, a "Clear access key" or "Clear secret key" button appears next to the field. Clicking it immediately removes the stored value, matching the same pattern used by the parent plugin for the SMTP password. **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.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