update Updated January 2026 10 min read

Amazon SES SMTP Settings (2026)

Complete guide to configure Amazon Simple Email Service (SES) SMTP for high-volume transactional email. Includes regional endpoints, credential setup, and production best practices.

table_chart Quick Reference

SMTP Server email-smtp.[region].amazonaws.com
Port (STARTTLS) 587 Recommended, 25, 2587
Port (TLS Wrapper) 465, 2465
Encryption Required (TLS)
Username SMTP Username (NOT IAM Access Key)
Password SMTP Password (NOT IAM Secret Key)
Sandbox Limit 200 messages/24h, 1/sec
Production Limit Unlimited (request increase)
Pricing $0.10 per 1,000 emails
warning

Important: SMTP Credentials β‰  IAM Credentials

SES SMTP credentials are NOT your AWS IAM Access Key/Secret Key. You must generate specific SMTP credentials from the SES console. Using IAM credentials will result in authentication failure.

public Regional SMTP Endpoints

Region SMTP Endpoint
US East (N. Virginia) email-smtp.us-east-1.amazonaws.com
US East (Ohio) email-smtp.us-east-2.amazonaws.com
US West (Oregon) email-smtp.us-west-2.amazonaws.com
EU (Ireland) email-smtp.eu-west-1.amazonaws.com
EU (Frankfurt) email-smtp.eu-central-1.amazonaws.com
EU (London) email-smtp.eu-west-2.amazonaws.com
Asia Pacific (Mumbai) email-smtp.ap-south-1.amazonaws.com
Asia Pacific (Singapore) email-smtp.ap-southeast-1.amazonaws.com
Asia Pacific (Sydney) email-smtp.ap-southeast-2.amazonaws.com
Asia Pacific (Tokyo) email-smtp.ap-northeast-1.amazonaws.com

Tip: Choose the region closest to your application servers for lowest latency. SMTP credentials are region-specific since January 2019.

format_list_numbered Step-by-Step Setup

1

Verify Your Domain or Email

  1. Go to AWS Console β†’ Amazon SES β†’ Verified identities
  2. Click "Create identity"
  3. Choose "Domain" (recommended) or "Email address"
  4. For domain: Add the provided DNS records (DKIM, SPF)
  5. Wait for verification (usually 24-72 hours for domains)
2

Generate SMTP Credentials

  1. Go to AWS Console β†’ Amazon SES β†’ SMTP settings
  2. Click "Create SMTP credentials"
  3. Enter a name for the IAM user (e.g., "ses-smtp-user")
  4. Click "Create user"
  5. Download or copy your credentials immediately

Critical: You can only view the SMTP password once. If you lose it, you'll need to create new credentials.

3

Request Production Access (Exit Sandbox)

New SES accounts are in sandbox mode with limited sending. To remove limits:

  1. Go to AWS Console β†’ Amazon SES β†’ Account dashboard
  2. Click "Request production access"
  3. Fill out the form:
    • Mail type: Transactional or Marketing
    • Website URL
    • Use case description
    • How you handle bounces and complaints
  4. Submit and wait for approval (24-48 hours)
4

Configure Your Application

SMTP Server

email-smtp.us-east-1.amazonaws.com

Port

587 (STARTTLS)

Username

Your SMTP Username

Password

Your SMTP Password

code Code Examples

# Python 3 - Amazon SES SMTP
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Amazon SES SMTP Configuration
SES_SMTP_HOST = "email-smtp.us-east-1.amazonaws.com"
SES_SMTP_PORT = 587
SES_SMTP_USER = "YOUR_SMTP_USERNAME"  # NOT IAM Access Key!
SES_SMTP_PASS = "YOUR_SMTP_PASSWORD"  # NOT IAM Secret Key!

# Verified sender address
SENDER = "sender@yourdomain.com"

def send_email(to_email, subject, body_text, body_html=None):
    msg = MIMEMultipart('alternative')
    msg['Subject'] = subject
    msg['From'] = SENDER
    msg['To'] = to_email

    # Add text and HTML parts
    msg.attach(MIMEText(body_text, 'plain'))
    if body_html:
        msg.attach(MIMEText(body_html, 'html'))

    try:
        server = smtplib.SMTP(SES_SMTP_HOST, SES_SMTP_PORT)
        server.starttls()
        server.login(SES_SMTP_USER, SES_SMTP_PASS)
        server.sendmail(SENDER, to_email, msg.as_string())
        server.quit()
        print("Email sent successfully!")
        return True
    except Exception as e:
        print(f"Error: {e}")
        return False

# Usage
send_email(
    "recipient@example.com",
    "Test from Amazon SES",
    "Hello from SES SMTP!"
)

speed Sending Limits & Quotas

Account Status Daily Limit Sending Rate Notes
Sandbox Mode 200 1 email/sec Can only send to verified addresses
Production (Initial) 50,000 14 emails/sec Default after approval
Production (Increased) Unlimited Custom Request via AWS Support

Important Quota Details

  • info Quotas are based on recipients, not messages (1 email to 10 people = 10 recipients)
  • info Maximum message size: 40MB (including attachments)
  • info Quotas are separate per AWS region
  • info EC2: Port 25 is throttled by default. Use 587 or 465 instead.

error Common Errors & Solutions

535

Authentication Credentials Invalid

Authentication failed

Solution: You're using IAM credentials instead of SMTP credentials. Generate new SMTP credentials from SES console. Also ensure credentials match your region.

554

Message Rejected

Email address or domain not verified

Solution: In sandbox mode, both sender and recipient must be verified. Verify the addresses in SES console or request production access.

454

Throttling - Too Many Connections

Exceeded sending rate

Solution: Implement exponential backoff. Reduce concurrent connections. Request a sending rate increase via AWS Support.

Connection Timeout

Connection Timeout on EC2

Cannot connect to SES on port 25

Solution: Port 25 is throttled on EC2 by default. Use port 587 or 465 instead, or request email sending limitations removal via AWS Support.

payments Pricing

$0.10 per 1,000 emails
62,000 free emails/month from EC2
$0.12 per GB attachments

Note: If you send from Amazon EC2, your first 62,000 emails per month are free (part of AWS Free Tier). Additional emails are $0.10 per 1,000.

help Frequently Asked Questions

Can I use IAM credentials for SMTP?

No. SES SMTP credentials are different from IAM credentials. You must generate specific SMTP credentials from the SES console. Using IAM Access Key/Secret Key will fail authentication.

How long does production access approval take?

Typically 24-48 hours. Provide a clear use case, explain your email sources, and describe how you handle bounces and complaints. Vague or incomplete requests may be delayed or denied.

Are SMTP credentials region-specific?

Yes, since January 2019. Credentials generated in us-east-1 will only work with email-smtp.us-east-1.amazonaws.com. If you need to send from multiple regions, generate credentials in each region.

Should I use SMTP or the SES API?

For high volume (>100 emails/sec), the SES API is more efficient. SMTP is easier to integrate with existing applications. Both have the same sending limits and pricing.

Using SES for Cold Outreach?

Postigo integrates with Amazon SES for automated email campaigns with AI personalization, SMTP rotation, and deliverability monitoring.