# Amazon SES Sending Limits — Cookbook for AcelleMail Operators

> SES starts at 200/day sandbox, scales to 50k+/day in production, $0.10 per 1,000 emails. This guide is the practical cookbook: how to grow from sandbox to scale, region-by-region orchestration, what AcelleMail does at each tier.

- Canonical URL: https://acellesend.com/kb/articles/ses-sending-limits-cookbook
- Author: Lena Hart, Email Deliverability Editor
- Category: Sending & Deliverability — SMTP setup, bounce handling, sender reputation, IP warmup, throttling
- Content type: tutorial · Difficulty: intermediate
- Tags: Acellemail
- Published: 2026-07-04 · Last updated: 2026-08-15
- Reading time: 8 min
- Publisher: AcelleMail Knowledge Base, https://acellesend.com/kb

---

## SES quota tiers

| Tier | Daily quota | Notes |
|---|---|---|
| Sandbox | 200/day | Default. Recipients must be verified. Free. |
| Production (new) | 50,000/day | After production-mode request. Approval ~24h. |
| Production (raised) | Up to 1,000,000/day | After 30+ days clean sending; manual request. |
| Dedicated IP | Independent of shared-pool quotas | $24.95/mo per IP. Higher reputation control. |

Plus a per-second send rate: 1/sec sandbox, 14/sec new-production, up to 500+/sec with raised limits.

## Recipe 1: Get out of sandbox

Sandbox = 200/day, recipients must be verified. Useless for marketing.

To leave sandbox:

1. AWS Console → SES → Account dashboard → **Request production access**
2. Form: use case, expected volume, complaint/bounce handling
3. Approval: 24-48 hours typical

Be specific + honest. AWS rejects:
- "Send to a purchased list" — instant denial
- Vague descriptions — back-and-forth, slows approval
- No mention of unsubscribe + consent process — denial

Good template:

```
Use case: Marketing email for SaaS customers who explicitly opted in via signup form. We currently have 25,000 subscribers across 3 lists in [region], all collected via double-opt-in over the past 2 years. Expected volume: 50,000/month initially, growing to 250,000/month over 12 months. Bounces and complaints are auto-processed via AcelleMail's bounce + FBL handlers; unsubscribe links present in every email.
```

## Recipe 2: Configure SES in AcelleMail
### Open the sending-server detail

In AcelleMail's sidebar, click **Sending → Sending servers**. The list shows every server connected to this account with its status chip, sending limit, and last activity:

![Customer sending-server list](https://acellesend.com/plugins/acelle/landing/images/help/kb/sending-servers/01-customer-server-list.png)

Click into the row you want to configure. The detail page surfaces Connection settings (host / credentials), Configuration (server name, default from, sending limit, bounce + FBL handler), and the **Test connection** / **Send test email** buttons in the toolbar:

![Server detail — Connection + Configuration](https://acellesend.com/plugins/acelle/landing/images/help/kb/sending-servers/02-server-detail-full.png)

For SES specifically:

### Pick the SES type

Type picker:

![Type selector](https://acellesend.com/plugins/acelle/landing/images/help/kb/sending-servers/06-type-selector.png)

Two SES options:

- **Amazon SES (API)** — uses SES SendEmail API. Faster, better tracking. Recommended.
- **Amazon SES (SMTP)** — uses SES SMTP relay. Vendor-neutral, slightly slower.

Pick API for the AcelleMail-side install. The API form:

![Amazon SES API create form](https://acellesend.com/plugins/acelle/landing/images/help/kb/sending-servers/12-create-form-amazon-api.png)

The SMTP alternative — if you need the vendor-neutral integration:

![Amazon SES SMTP create form](https://acellesend.com/plugins/acelle/landing/images/help/kb/sending-servers/20-create-form-amazon-smtp.png)

### Configure credentials + region

```
AWS Access Key ID:     [from IAM SES-FullAccess user]
AWS Secret Access Key: [paired with above]
Region:                [where you verified your domain — us-east-1, eu-west-1, etc.]
Default from email:    [verified address on your domain]
Sending limit:         50000 (for production-default daily quota)
```

Save. AcelleMail validates immediately — *Active* badge or inline error.

### Verify the auth chips

Server detail shows the auth status:

![Sending server with SPF/DKIM/DMARC chips](https://acellesend.com/plugins/acelle/landing/images/help/kb/spam-folder/02-sending-server-config.png)

All three should be Green if your SES setup is correct. If any Red, the verify-domain wizard will walk you through DNS records.

## Recipe 3: Raise the per-account quota

After ~30 days of clean sending, you can request raised limits:

1. AWS Console → SES → Account dashboard
2. **Service quotas** (in the AWS account, not just SES) → search "ses"
3. Find: "Sending quota" + "Sending rate"
4. **Request quota increase**

Approval: ~24-48h. AWS sees your bounce rate + complaint rate; if clean, approval is automatic.

| Current | Request up to | Typical approval |
|---|---|---|
| 50k/day | 200k/day | Immediate if metrics clean |
| 200k/day | 1M/day | Up to 1 week, manual review |
| 1M/day | 5M+/day | Account-team negotiation |

## Recipe 4: Dedicated IP for premium reputation

At $24.95/mo, dedicated IP gives:

- Full reputation control (your traffic only)
- Better postmaster signals (per-IP rep)
- Pool of dedicated IPs available for rotation

Setup:

1. AWS SES → **Dedicated IPs** → **Request dedicated IP**
2. Wait 1-2 days for provisioning
3. AcelleMail: no config change required; SES routes via dedicated IP automatically

For a pool of dedicated IPs:

```
AWS SES → Configuration Sets → "production-marketing"
  Dedicated IP pool: [ip1, ip2, ip3]
  Tracking: enabled
  CloudWatch destination: enabled

AWS SES → Configuration Sets → "production-transactional"
  Dedicated IP pool: [ip4]
  Tracking: disabled (transactional doesn't need engagement tracking)
```

In AcelleMail admin: set the Configuration Set in the sending-server advanced config. Campaigns automatically use the right IP pool.

## Recipe 5: Multi-region for global audience

If your audience is global, set up SES in 3 regions:

```
us-east-1     (Virginia)   - US recipients, best AWS-global integration
eu-west-1     (Ireland)    - EU recipients, GDPR data residency
ap-southeast-1 (Singapore)  - APAC recipients
```

Process:

1. Verify your domain in EACH region (separate verification per region)
2. Add 3 sending servers in AcelleMail (one per region)
3. Tag subscribers by region: `tag:us`, `tag:eu`, `tag:apac`
4. Create 3 Plans, each scoped to a single regional server
5. Assign campaigns to the right Plan based on segment

Cost: SES is $0.10/1k regardless of region. Multi-region adds zero marginal cost beyond the verified-domain effort.

## Recipe 6: Monitoring

Daily checks:

1. **AcelleMail bounce log** — last 24h pattern:

![Campaign bounce log](https://acellesend.com/plugins/acelle/landing/images/help/kb/campaign-delivery/02-campaign-bounce-log.png)

Target: bounce rate <2%, complaint rate <0.1%.

2. **AWS CloudWatch SES metrics:**
   - `BounceRate` → keep <5%
   - `ComplaintRate` → keep <0.1%
   - `Reputation` → high
   - `SendsForGeneralRecipient` → trending up

3. **Google Postmaster Tools** for Gmail-specific signals (see [walkthrough](https://acellesend.com/kb/articles/gmail-postmaster-tools-walkthrough))

4. **Microsoft SNDS** for Outlook-specific (see [walkthrough](https://acellesend.com/kb/articles/microsoft-snds-walkthrough))

If any signal goes red, AWS may auto-suspend your account. Recovery requires audit + AWS engagement.

## Common UI signals + fixes

| Symptom | Likely cause | UI fix |
|---|---|---|
| New SES server status *Testing* indefinitely | Region mismatch (verified in us-east, server set to eu-west) | Edit credentials → match region |
| Test send fails "Email address not verified" | Still in sandbox; can only send to verified addresses | Request production access |
| Production approved but 200/day cap still applied | Daily quota allocation is gradual; AWS raises over days | Send at max daily; AWS auto-raises if clean |
| Bounce rate over 5% | SES auto-pauses accounts above 5% | Pause; clean list; resume slowly |
| Complaint rate over 0.1% | SES auto-pauses accounts above 0.1% | Pause; audit consent; investigate before resume |
| All emails to one region failing | That region's verification expired or DKIM key rotated | Re-verify in that region; update sending server config |
| Tracking shows 0% opens | SES open-tracking requires Configuration Set with tracking enabled | Add Configuration Set in admin advanced |

## Cost math

```
50k/day SES production = 1.5M/month = $150/month
With 3 dedicated IPs = $150 + $75 = $225/month

vs Postmark same volume = $1500+/month
vs SendGrid same volume = $1500+/month
vs Mailgun same volume = $1000+/month
```

SES is the cheapest at scale by 5-10×. Worth the AWS-side complexity.

<details>
<summary><strong>Advanced: SES auto-pause recovery, IAM least-privilege, multi-account orchestration</strong></summary>

**SES auto-pause recovery:**

When SES auto-pauses your account due to bounce/complaint rate spike:

```
Day 0: Auto-paused notification from AWS
       AWS console: SES → Account dashboard → Status: Paused
Day 1: Audit + identify root cause
Day 2: Compose detailed response to AWS, including:
       - Root cause analysis
       - Remediation actions taken (list cleaned, sending paused, etc.)
       - Process changes preventing recurrence
Day 3-7: Submit request to AWS Support to lift the pause
Day 7-14: AWS reviews; if convinced, lifts the pause
Day 14: Resume sending at 50% of pre-incident volume, slowly ramp back
```

Frequency: most accounts hit auto-pause once (the learning event). Repeat offenses get manual review + potentially account suspension.

**IAM least-privilege:**

```json
{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "SESSendOnly",
    "Effect": "Allow",
    "Action": [
      "ses:SendEmail",
      "ses:SendRawEmail",
      "ses:GetSendQuota",
      "ses:GetSendStatistics"
    ],
    "Resource": "*",
    "Condition": {
      "StringEquals": {
        "ses:FromAddress": "noreply@yourdomain.com"
      }
    }
  }]
}
```

Restricts the AcelleMail IAM user to send-only from a specific address. If credentials leak, blast radius is contained.

**Multi-account orchestration:**

For SaaS operators with high volume, split across multiple AWS accounts:

```
AWS Account A: SES production, dedicated IPs 1-5
  Verifies domains for Customer-Tier-1

AWS Account B: SES production, dedicated IPs 6-10
  Verifies domains for Customer-Tier-2

AWS Account C: SES production, shared pool only
  Verifies domains for Customer-Tier-Free
```

Per-account quotas + dedicated IPs scale linearly. Some operators use 5+ AWS accounts to total 5M/day SES capacity.

In AcelleMail: configure each AWS account as a separate sending server. Customer plans attach to the appropriate server tier.

**Bounce/complaint webhook via SNS:**

```bash
# SES → Configuration Set → Event Destinations → Add SNS
# Topic: "ses-bounces"
# Events: bounce + complaint

# Subscribe AcelleMail to the SNS topic via HTTP endpoint
aws sns subscribe \
  --topic-arn arn:aws:sns:us-east-1:ACCT:ses-bounces \
  --protocol https \
  --notification-endpoint https://acellemail.com/webhooks/ses-bounces
```

AcelleMail's bounce handler receives bounces in real-time, updates subscriber statuses, removes hard-bounced addresses immediately.

**Configuration Sets for advanced features:**

```
# Set up tracking + dedicated pool
aws ses put-configuration-set-tracking-options \
  --configuration-set-name production-marketing \
  --tracking-options CustomRedirectDomain=track.yourdomain.com

aws ses put-configuration-set-event-destination \
  --configuration-set-name production-marketing \
  --event-destination Name=CloudWatch,Enabled=true,MatchingEventTypes=send,reject,bounce,complaint
```

Configuration Sets are powerful but complex. Use them when you need per-campaign-class tracking or pool routing.

**SES + AcelleMail performance tips:**

1. Use API (not SMTP) for higher throughput
2. Set Configuration Set tracking; AcelleMail captures opens/clicks via your tracking domain
3. Per-region servers in AcelleMail for global audience
4. Match sending limit to vendor quota explicitly
5. Daily AWS CloudWatch + AcelleMail bounce/complaint dual-check
6. Quarterly review: are you outgrowing SES capacity? Plan multi-vendor or multi-account.

</details>

## Related articles

- [Configuring Amazon SES with AcelleMail](https://acellesend.com/kb/articles/configuring-amazon-ses-with-acellemail)
- [Configuring multiple sending servers](https://acellesend.com/kb/articles/configuring-multiple-sending-servers)
- [Sender reputation monitoring](https://acellesend.com/kb/articles/sender-reputation-monitoring)
- [IP warmup schedule for new sending servers](https://acellesend.com/kb/articles/ip-warmup-schedule-for-new-sending-servers)

---

## Related articles

- [Feedback Loops (FBL) — Setup + Wire in AcelleMail](https://acellesend.com/kb/articles/feedback-loops-fbl-setup): When a recipient clicks "Mark as Spam" on a Microsoft / Yahoo / AOL / Comcast mailbox, those ISPs send you the complaint via Feedback Loop. AcelleMail processes it automatically — unsubscribes the complainer, updates the complaint stats. This guide walks the setup.
- [How to Set Up Amazon SES with AcelleMail](https://acellesend.com/kb/articles/configuring-amazon-ses-with-acellemail): Create an IAM user and access key in AWS, connect Amazon SES to AcelleMail, share your verified domains with users, and let them verify their own.
- [Multiple Sending Servers in AcelleMail — Add, Mix, Route](https://acellesend.com/kb/articles/configuring-multiple-sending-servers): Spread your volume across several SMTP and API senders for failover, reputation isolation, and headroom past any single vendor's cap. This guide walks the real screens: the type picker, the connect form, the per-campaign "Use all servers" toggle, and the admin pool view.
- [Hard Bounce vs Soft Bounce — Reading the Bounce Log](https://acellesend.com/kb/articles/understanding-email-bounce-types): A hard bounce is permanent; a soft bounce is temporary. AcelleMail records them in the campaign bounce log and treats them differently — hard bounces blacklist the address, soft bounces are left alone for the receiving server to retry. This guide walks the bounce log, the DSN codes, and what each type means for your list.
- [IP Warmup Schedule — Ramping a New Sending Server in AcelleMail](https://acellesend.com/kb/articles/ip-warmup-schedule-for-new-sending-servers): A fresh sending IP has zero reputation. Send 50,000 emails on day one and every major mailbox provider routes you to spam. AcelleMail's Warmup Strategies grow your volume gradually using one of three presets. This guide walks the admin UI plus a realistic ramp plan.
