{"id":309822,"date":"2026-05-24T21:48:57","date_gmt":"2026-05-24T21:48:57","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/simple-aws-ses\/"},"modified":"2026-05-24T22:12:18","modified_gmt":"2026-05-24T22:12:18","slug":"fullworks-simple-setup-for-amazon-ses","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/fullworks-simple-setup-for-amazon-ses\/","author":14422525,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"7.0","requires":"5.0","requires_php":"8.2","requires_plugins":null,"header_name":"Fullworks Simple Setup for Amazon SES","header_author":"Fullworks","header_description":"Send WordPress emails through Amazon SES (Simple Email Service).","assets_banners_color":"0d599c","last_updated":"2026-05-24 22:12:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/fullworksplugins.com\/products\/fullworks-simple-setup-for-amazon-ses","header_author_uri":"https:\/\/fullworksplugins.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"fullworks","date":"2026-05-24 22:12:18"},"trunk":{"tag":"trunk","author":"fullworks","date":"2026-05-24 21:33:53"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3546669,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3546669,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3546669,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3546669,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3546669,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0","trunk"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[209,1898,267,6929,6696],"plugin_category":[41,45],"plugin_contributors":[196325,79438],"plugin_business_model":[],"class_list":["post-309822","plugin","type-plugin","status-publish","hentry","plugin_tags-amazon","plugin_tags-aws","plugin_tags-email","plugin_tags-ses","plugin_tags-smtp","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-alanfuller","plugin_contributors-fullworks","plugin_committers-fullworks"],"banners":{"banner":"https:\/\/ps.w.org\/fullworks-simple-setup-for-amazon-ses\/assets\/banner-772x250.png?rev=3546669","banner_2x":"https:\/\/ps.w.org\/fullworks-simple-setup-for-amazon-ses\/assets\/banner-1544x500.png?rev=3546669","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/fullworks-simple-setup-for-amazon-ses\/assets\/icon.svg?rev=3546669","icon":"https:\/\/ps.w.org\/fullworks-simple-setup-for-amazon-ses\/assets\/icon.svg?rev=3546669","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Fullworks Simple Setup for Amazon SES replaces the default WordPress email function with Amazon SES, ensuring reliable email delivery for your WordPress site.<\/p>\n\n<p>This plugin is an independent project and is not affiliated with, endorsed by, or sponsored by Amazon Web Services, Inc.<\/p>\n\n<p>Features:\n* Easy configuration through WordPress admin\n* Optional credential configuration via wp-config.php constants (12-factor \/ env-var friendly)\n* Supports all standard WordPress emails\n* Test email functionality\n* Credentials stored in the WordPress database, or defined as wp-config.php constants to keep them out of the database\n* Support for HTML and plain text emails<\/p>\n\n<h3>Configuration<\/h3>\n\n<p>Before using this plugin, you need to:<\/p>\n\n<ol>\n<li>Have an AWS account<\/li>\n<li>Set up Amazon SES in your preferred region<\/li>\n<li>Verify your sender email address or domain in AWS SES<\/li>\n<li>Create an IAM user with SES sending permissions<\/li>\n<li>Generate Access Keys for the IAM user<\/li>\n<\/ol>\n\n<h3>Defining Credentials in wp-config.php<\/h3>\n\n<p>Instead of storing AWS credentials in the database via the settings UI, you can define them as PHP constants in <code>wp-config.php<\/code>. This is the recommended approach for production sites and works well with environment variables on managed hosts.<\/p>\n\n<p>Add the following before the <code>\/* That's all, stop editing! *\/<\/code> line in <code>wp-config.php<\/code>:<\/p>\n\n<pre><code>define( 'FSSFAS_ACCESS_KEY_ID',     getenv( 'FSSFAS_ACCESS_KEY_ID' ) ?: '' );\ndefine( 'FSSFAS_SECRET_ACCESS_KEY', getenv( 'FSSFAS_SECRET_ACCESS_KEY' ) ?: '' );\ndefine( 'FSSFAS_REGION',            getenv( 'FSSFAS_REGION' ) ?: 'us-east-1' );\n<\/code><\/pre>\n\n<p>Each constant is independent \u2014 you can define one, two, or all three. Any constant that is defined takes precedence over the value saved in the settings page, and the matching field in the admin UI is locked while the constant is in effect.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin sends your site's outgoing email through Amazon Simple Email Service (Amazon SES), a service provided by Amazon Web Services, Inc. When WordPress sends an email and the plugin has been configured with valid AWS credentials, the message is transmitted to Amazon SES instead of being delivered by your server's default mailer.<\/p>\n\n<p>The following data is sent to Amazon SES for each email:<\/p>\n\n<ul>\n<li>The recipient address(es), and any Cc, Bcc and Reply-To addresses<\/li>\n<li>The sender name and address<\/li>\n<li>The email subject and message body<\/li>\n<li>Any file attachments included with the email<\/li>\n<li>Your AWS Access Key ID and the AWS region you select, used to authenticate the request<\/li>\n<\/ul>\n\n<p>No data is sent to Amazon SES unless you have entered AWS credentials in the plugin settings (or defined them as <code>wp-config.php<\/code> constants). Without credentials the plugin does nothing and WordPress sends email using its normal method.<\/p>\n\n<p>This service is provided by Amazon Web Services, Inc. Your use of it is governed by their terms and privacy policy:<\/p>\n\n<ul>\n<li>Amazon SES: https:\/\/aws.amazon.com\/ses\/<\/li>\n<li>AWS Service Terms: https:\/\/aws.amazon.com\/service-terms\/<\/li>\n<li>AWS Privacy Notice: https:\/\/aws.amazon.com\/privacy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>fullworks-simple-setup-for-amazon-ses<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Settings &gt; Fullworks SES to configure your AWS credentials<\/li>\n<li>Enter your AWS Access Key ID, Secret Access Key, and select your AWS region<\/li>\n<li>Configure your sender email address (must be verified in AWS SES)<\/li>\n<li>Send a test email to verify everything is working<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20permissions%20does%20my%20aws%20iam%20user%20need%3F\"><h3>What permissions does my AWS IAM user need?<\/h3><\/dt>\n<dd><p>Your IAM user needs the <code>ses:SendEmail<\/code> and <code>ses:SendRawEmail<\/code> permissions.<\/p><\/dd>\n<dt id=\"what%20data%20does%20this%20plugin%20send%20to%20amazon%3F\"><h3>What data does this plugin send to Amazon?<\/h3><\/dt>\n<dd><p>See the \"External Services\" section above \u2014 in short, the contents of any email WordPress sends (recipients, sender, subject, body, attachments) plus your AWS Access Key ID and region for authentication.<\/p><\/dd>\n<dt id=\"my%20emails%20are%20not%20being%20sent.%20what%20should%20i%20check%3F\"><h3>My emails are not being sent. What should I check?<\/h3><\/dt>\n<dd><ol>\n<li>Verify your AWS credentials are correct<\/li>\n<li>Ensure your sender email is verified in AWS SES<\/li>\n<li>Check if you're still in the SES sandbox (new accounts have sending limits)<\/li>\n<li>Review your WordPress error logs for specific error messages<\/li>\n<\/ol><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>First WP org release<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Updated bundled <code>aws\/aws-sdk-php<\/code> to the latest stable release.<\/li>\n<li>Updated tested to to wp7.0<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Updated bundled <code>aws\/aws-sdk-php<\/code> to the latest stable release.<\/li>\n<li>Changed 6 escape late outputs to comply with reviewer recommendations.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Updated bundled <code>aws\/aws-sdk-php<\/code> to the latest stable release.<\/li>\n<li>Updated URI to correct path.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Renamed plugin to \"Fullworks Simple Setup for Amazon SES\" (previously \"Simple AWS SES\"). Slug, namespace (<code>Fullworks\\SimpleSetupForAmazonSes\\<\/code>), prefix (<code>fssfas<\/code> \/ <code>FSSFAS<\/code>), option key (<code>fssfas_settings<\/code>), AJAX action and wp-config constants (<code>FSSFAS_ACCESS_KEY_ID<\/code>, <code>FSSFAS_SECRET_ACCESS_KEY<\/code>, <code>FSSFAS_REGION<\/code>) all updated.<\/li>\n<li>All admin UI strings, AJAX responses, and the test email body are now translatable via the <code>fullworks-simple-setup-for-amazon-ses<\/code> text domain.<\/li>\n<li>Security: outgoing messages are now assembled with WordPress' bundled PHPMailer, which validates addresses and strips line breaks from headers, closing a potential email header injection path when other plugins pass untrusted data to <code>wp_mail()<\/code>.<\/li>\n<li>The settings page JavaScript and CSS are now enqueued properly (<code>wp_enqueue_script<\/code> \/ <code>wp_localize_script<\/code>) instead of being printed inline.<\/li>\n<li>Added a privacy policy suggestion via <code>wp_add_privacy_policy_content()<\/code>, and an \"External Services\" section in the readme documenting exactly what data is sent to Amazon SES.<\/li>\n<li>Updated bundled <code>aws\/aws-sdk-php<\/code> to the latest stable release and stripped the unused AWS service clients so the plugin download is dramatically smaller.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Test email button now sends via AWS SES directly instead of <code>wp_mail()<\/code>, so it no longer reports success when SES has actually failed and WordPress fell back to the default mailer.<\/li>\n<li>AWS errors (code, message, request ID) are now surfaced in the test email response and written to <code>debug.log<\/code> when <code>WP_DEBUG<\/code> is enabled. SES failures during normal <code>wp_mail()<\/code> flow are also logged before the WordPress default mailer takes over.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added support for defining AWS credentials via PHP constants in wp-config.php (<code>FSSFAS_ACCESS_KEY_ID<\/code>, <code>FSSFAS_SECRET_ACCESS_KEY<\/code>, <code>FSSFAS_REGION<\/code>). When a constant is defined, the matching field in the settings UI is locked.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed HTML email detection - emails with common HTML tags are now correctly sent as text\/html<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Send WordPress emails through Amazon SES (Simple Email Service) with easy configuration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=309822"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fullworks"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309822"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309822"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309822"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309822"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309822"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}