AWS SES Integration
Amazon Simple Email Service (SES) is a cloud-based email sending service designed for high-volume email delivery. Broadcast provides deep integration with AWS SES, including automatic resource setup, webhook tracking, and suppression list synchronization.
Features
| Feature | Supported |
|---|---|
| SMTP Delivery | ✅ |
| API Delivery | ✅ |
| Automatic Setup | ✅ |
| Webhook Tracking | ✅ |
| Suppression List Sync | ✅ |
| Open Tracking | ✅ |
| Click Tracking | ✅ |
Delivery Methods
Broadcast supports two delivery methods for AWS SES:
API Delivery (Recommended)
API delivery uses the AWS SDK to send emails directly through the SES API. Benefits include:
- Faster sending: No SMTP handshake overhead
- Better error handling: Detailed error messages from AWS
- Reduced infrastructure: No need to open SMTP ports
- Direct access: To SES-specific features
SMTP Delivery
Traditional SMTP delivery works with standard email infrastructure. Use this if:
- You have existing SMTP infrastructure
- Your network restricts API calls
- You need maximum compatibility
Both methods support full webhook integration for tracking email events.
Setting Up AWS SES
Prerequisites
Before you begin, ensure you have:
- An AWS account with SES access
- A verified domain or email address in SES
- SES out of sandbox mode (for production sending)
- An IAM user with appropriate permissions
Creating an IAM User
Create a dedicated IAM user for Broadcast with the following policies:
Security Best Practice
Create a dedicated IAM user for Broadcast. Never use your root account or a user with broad access.
Required IAM Policies:
| Policy | Purpose |
|---|---|
AmazonSESFullAccess |
Email sending & suppression list sync |
AmazonSNSFullAccess |
Webhook event notifications (automatic setup) |
Automatic Setup
Broadcast can automatically create all the necessary AWS resources for webhook integration. This is the easiest way to get started.
What Broadcast Creates
The automatic setup process creates:
- SES Configuration Set: For email tracking and event routing
- SNS Topic: For receiving email event notifications
- SNS Subscription: Connects the topic to your Broadcast webhook endpoint
- Event Destinations: Routes sends, bounces, complaints, deliveries, opens, clicks, and rejects
Running Automatic Setup
- Go to Settings → ESP Integrations
- In the Amazon SES integration section, select your AWS SES email server
- Click Integrate Selected Server
- Enter your AWS credentials:
- AWS Access Key ID
- AWS Secret Access Key
- AWS Region (must match your SES region)
- Click Setup AWS Integration
Broadcast will create all resources and configure your email server automatically. Once complete, you’ll see an “Integrated” badge next to your server.
Reconfiguring an Existing Integration
If you set up AWS SES integration before and want to update your AWS resources with new event types, you can reconfigure:
- Go to Settings → ESP Integrations
- Find your integrated server (shows “Integrated” badge)
- Click Reconfigure next to the badge
- Confirm your AWS credentials
- Click Reconfigure Integration
The setup service is idempotent—it will reuse existing resources and only create or update what’s needed.
Configuring Email Delivery
API Delivery Setup
To use API delivery instead of SMTP:
- Go to Settings → Email Servers
- Click New Email Server or edit an existing AWS SES server
- Configure:
- Vendor: AWS SES
- Delivery Method: API
- AWS Access Key ID: Your IAM user’s access key
- AWS Secret Access Key: Your IAM user’s secret key
- AWS Region: Your SES region (e.g., us-east-1)
- AWS SES Configuration Set: (Optional) For webhook tracking
- Select which email types to send (Broadcasts, Sequences, Transactional)
- Save your configuration
SMTP Delivery Setup
For SMTP delivery:
- In AWS Console, go to SES → SMTP settings
- Click Create SMTP credentials
- Note the SMTP endpoint, username, and password
- In Broadcast, go to Settings → Email Servers
- Create or edit an email server:
- Vendor: AWS SES
- Delivery Method: SMTP
- SMTP Address: Your SES SMTP endpoint
- SMTP Port: 587 (recommended) or 465
- SMTP Username: From AWS
- SMTP Password: From AWS
- AWS SES Configuration Set: (Optional) For webhook tracking
- Click Test SMTP settings to verify
- Save your configuration
Suppression List Sync
AWS SES maintains an account-level suppression list of email addresses that have bounced or complained. Broadcast can sync this list to ensure you don’t send to these addresses.
How It Works
When you trigger a sync, Broadcast:
- Queries your AWS SES account’s suppression list
- Imports addresses into Broadcast’s global suppression list
- Records the sync timestamp and any errors
This ensures that addresses suppressed at the AWS level are also suppressed in Broadcast, preventing wasted sends and protecting your sender reputation.
Running a Sync
- Go to Settings → ESP Integrations
- Scroll to Suppression List Sync section
- Find your integrated AWS SES server
- Click Sync Suppression List
- Confirm the sync
You’ll see the results showing how many addresses were added and skipped.
Sync Information
For each server, Broadcast displays:
- Last synced: When the suppression list was last synchronized
- Sync errors: Any errors from the most recent sync attempt
When to Sync
Run a sync before major campaigns to ensure your suppression list is up to date. This is especially important if you’re migrating from another platform or have been sending emails outside of Broadcast.
Auto-Suppression
When Broadcast receives bounce or complaint webhooks from AWS SES, it automatically:
- Marks the subscriber as bounced/complained
- Deactivates the subscriber (prevents future sends)
- Adds the email to the global suppression list
This triple protection ensures:
- The specific subscriber won’t receive emails
- The email address won’t receive emails even if re-added
- Your sender reputation is protected
Testing the Integration
Using the AWS SES Simulator
AWS provides simulator addresses for testing without affecting your reputation:
| Address | Purpose |
|---|---|
[email protected] |
Successful delivery |
[email protected] |
Hard bounce |
[email protected] |
Spam complaint |
[email protected] |
On suppression list |
Test Procedure
- Add a test subscriber with
[email protected] - Create and send a test broadcast
- Check the subscriber’s detail page
- Verify:
- Bounce event was received
- Subscriber was deactivated
- Email was added to global suppression list
Webhook Events
AWS SES sends the following event types through SNS:
| Event Type | Description |
|---|---|
Bounce |
Email bounced (hard or soft) |
Complaint |
Recipient marked as spam |
Delivery |
Email successfully delivered |
Send |
Email sent to SES |
Reject |
SES rejected the email |
Open |
Recipient opened the email |
Click |
Recipient clicked a link |
Subscription |
Subscription-related event |
Broadcast automatically processes these events and updates:
- Outbound receipt records
- Subscriber status
- Global suppression list (for bounces/complaints)
Troubleshooting
Common Issues
“AWS credentials invalid” error
- Verify your Access Key ID and Secret Access Key are correct
- Ensure the IAM user has the required permissions
- Check that you’re using credentials for the correct AWS region
Webhooks not being received
- Verify the SNS subscription is confirmed (status should be “Confirmed”)
- Check that the configuration set is assigned to your email server in Broadcast
- Ensure the event destination includes all event types
- Verify your Broadcast instance is accessible from the internet
Suppression sync failing
- Ensure your IAM user has
ses:ListSuppressedDestinationspermission - Check that AWS SES is configured in the correct region
- Verify your credentials haven’t expired
“Configuration set not found” error
- Verify the configuration set name matches exactly (case-sensitive)
- Ensure the configuration set exists in the same region as your SES account
Verifying Webhook Delivery
- Go to your SNS topic in AWS Console
- Check Monitoring for delivery metrics
- Look for failed deliveries or throttling
- In Broadcast, check the subscriber or broadcast detail pages for event activity
Getting Help
If you’re experiencing issues:
- Check AWS CloudWatch logs for SES and SNS errors
- Review the Broadcast ESP Integrations page for error messages
- Verify all configuration steps were completed
- Contact support at [email protected]