Verify every recipient before Amazon SES sends it — and keep your account off review
Amazon SES automatically suppresses an address the moment it hard-bounces, so it never mails a known-bad address twice — but it can't judge an address before that first send, and on SES a first send into a dead mailbox is charged, bounced, and counted against the reputation thresholds that can put your whole account under review. Qualisend closes that gap: verify every address before SES sends to it — at the point of capture and before each batch — so invalid recipients never reach a send. Here's the workflow that works today, plus the API and no-code options.

One-click Amazon SES sync is paused while we rebuild the platform
We've deliberately paused our one-click native connectors while we re-engineer the sync layer they run on — hardening how we authenticate, respect each platform's rate limits, and write results back — so that when the native Amazon SES integration returns, it stays dependable at any list size rather than fragile at scale. None of this touches how Qualisend verifies an address.
Everything you need works today: the CSV export → verify → reimport loop below, and the API for verifying at signup, are both fully supported and running in production — that's how teams keep Amazon SES clean right now.
What Amazon SES cleans for you
Amazon SES runs two suppression layers. The global suppression list is managed by AWS across all customers: any address that hard-bounces for any SES sender is added, and if you try to mail it, SES accepts the API call but doesn't deliver — the message is treated as a hard bounce and still counts toward your bounce rate. On top of that sits your account-level suppression list, which SES fills automatically — you choose whether hard bounces, complaints, or both trigger it — and every address on it is skipped on future sends, with the skip deliberately not counted toward your Reputation bounce or complaint rate. Only permanent hard bounces are added automatically; soft bounces are not. For addresses SES has actually attempted, that's reliable, automatic hygiene.
What it can't catch
Every one of those mechanisms is reactive — it needs a real send and a bounce (or complaint) to fire. An address is only suppressed after it has already hard-bounced on a live message, which means you've already paid for that send and taken the reputation hit. Never-verified invalids from signup typos (jane@gmial.com), disposable addresses accepted at checkout, role addresses, and mailboxes that have quietly decayed have never bounced because SES has never sent to them — they look perfectly deliverable until your first message lands, which is exactly when a mailbox provider forms its first impression of your domain and IP. A recipient batch imported from an old system is the sharpest case: the bounce history is stripped, so addresses that were already failing look brand new, and SES will charge you to deliver each one straight into a hard bounce.
Why a clean Amazon SES list matters
On Amazon SES the stake isn't a contact-count bill — SES stores no audience and charges per message sent (roughly $0.10 per 1,000), so there's no stored list to trim. The real exposure is your sending account itself. SES tracks your bounce and complaint rates continuously, and the thresholds are hard: cross about 5% bounce rate and AWS puts your account under review with a compliance clock; cross about 10% and it pauses your ability to send email at all (best practice is to hold bounces under 5% and complaints under 0.1%). For a transactional sender that is existential — a pause means password resets, receipts, and account emails stop going out for every customer, not just the bad addresses. Each never-verified invalid you send to is a wasted message charge, a hard bounce dragging you toward those thresholds, and, on a shared or dedicated IP, a reputation signal Gmail and Yahoo's 2024 sender rules police directly. Verifying before the send means the charge is never spent, the bounce never happens, and your account never approaches review.
The workflow that works today
Amazon SES has no audience to export — it's a raw sending API — so the clean path isn't a CSV loop but verifying every address before SES sends to it, then suppressing the failures.
Verify at the point of capture
Call the Qualisend API from your signup, checkout, or account form before you store the address or hand it to SES. An address that comes back undeliverable never enters your database and never becomes a recipient, so the most common source of SES bounces — typos and throwaway addresses caught at the door — is closed off before it can ever cost you a send.
Verify a batch before you send it
For a one-off blast, a re-engagement run, or a recipient list imported from an old system, run it through Qualisend bulk cleaning first — up to 1,000,000 addresses per job, duplicates charged once — or paste a sample into the free checker. The free plan's 100 one-time credits, which never expire, cover an initial spot-check. Nothing reaches SendEmail or SendBulkEmail until it's been verified.
Read the results
Every address returns deliverable, risky, undeliverable, or unknown with a reason code, a 0–100 score, and sub-flags (catch-all, disposable, role, full mailbox), plus the MX provider and probe detail as evidence. Send only to the deliverable addresses; hold the rest back from your SES call.
Suppress the failures in SES and your own store
Add every verified-undeliverable address to your account-level suppression list — call PutSuppressedDestination in the SES v2 API once per address (loop it to push a whole batch, the same way you'd migrate a suppression list over from a previous provider), or add them by hand in the SES console. SES then drops them even if one slips back into a future send — and because it's an account-level suppression, that drop isn't counted against your bounce rate the way a live bounce would be. Record the verdict in your own database too, so the address is never re-queued. This does the reputation-saving work before the send instead of after the bounce.
Or automate it at signup
The point of capture is where this pays off most. Verify in real time with the Qualisend REST API (scoped keys, rate limits, webhooks) inside the same request that writes the address to your database, or wire a no-code flow through Zapier, Make, or n8n so every new signup is checked before it can ever become an SES recipient — invalid and disposable addresses never reach a send in the first place.
What Qualisend flags on every address
- Never-verified invalid addresses that would hard-bounce on their first SES send and drive your bounce rate toward the 5% review threshold
- Disposable / throwaway domains accepted at signup that were built to expire
- Role addresses (info@, support@) that draw complaints and skew engagement signals
- Catch-all domains, flagged so you can throttle rather than blast a domain that accepts everything at the door
- A 0–100 confidence score and machine-readable reason code for every address, ready to gate an API send on
A native, one-click Amazon SES connector is part of the platform we're rebuilding — it's returning, not deprecated. Until it ships, the API and the verify-before-send flow above are the fully supported path, and they work with any SES setup, whether you send over the API or SMTP.
What to do with each result
Every address comes back with a verdict and sub-flags. Here's the action that keeps your Amazon SES list clean without throwing away contacts you can still reach.
deliverableSend through SES as normal.deliverable + role flagSafe for transactional and account mail; keep out of engagement-judged broadcasts.risky + catch-all flagSend cautiously and throttle — the domain accepts everything at the door, so the mailbox can't be confirmed. Watch the bounce metric.risky + disposable flagDon't send; add to your SES suppression list — the inbox was built to expire.unknownHold and re-verify before the next send — usually greylisting or rate-limiting, not a verdict on the mailbox.undeliverableNever send; add to your account-level suppression list now, before the bounce proves it and counts against your rate.Related reading
Cleaning is half of deliverability — authenticate your SES sending domain too.
Verify at the point of capture so invalid addresses never become an SES recipient.
Spot-check a sample or a single address before you wire up the API.
The 5% review and 10% pause thresholds SES holds your account to.
Why the first send into a dead mailbox costs more than a wasted message.
The 2024 bounce and complaint thresholds your SES mail is judged against.
Amazon SES verification FAQ
Clean your Amazon SES list in minutes
Start free with 100 credits that never expire — no card required. Export, verify, reimport, and protect your next campaign.