This project is not covered by Drupal’s security advisory policy.

SES SMTP Credentials integrates the SMTP module with AWS Simple Email Service (SES) by fetching SMTP credentials from AWS Systems Manager Parameter Store at runtime and injecting them into smtp.settings transparently.

Credentials are never written to the Drupal database, configuration storage, or version control. They are retrieved on each request using the EC2 instance profile (or equivalent IAM role) and cached in memory for the lifetime of the request only.

Features

  • Zero-config credential injection via a config factory override — no changes to smtp.settings in the UI required
  • Configurable AWS region via $settings['ses_aws_region'] in settings.php
  • Optional X-SES-TENANT and X-SES-CONFIGURATION-SET header stamping on every outbound message (for shared SES configuration sets)
  • A Drush command (drush ses-smtp:check) that verifies SSM access, DNS resolution, TCP connectivity, STARTTLS, and SMTP authentication without sending any mail
  • Safe to enable on all environments — if the SSM parameter name is empty or the host does not match, nothing is injected and mail routes through the existing transport unchanged

Requirements

  • Drupal 10 or 11
  • SMTP module
  • aws/aws-sdk-php (^3.0) via Composer
  • An IAM role or EC2 instance profile with ssm:GetParameter permission
  • SMTP credentials stored in SSM Parameter Store as a pipe-delimited string: username|password|account

AI Use Disclosure

This module was developed with AI assistance (Claude by Anthropic). All code has been reviewed, tested, and approved by the human author before being committed.

Project information

Releases