[ 01 ]
Manually maintaining a do-not-mail list doesn’t scale
A spreadsheet or CSV export of addresses to avoid is stale the moment someone unsubscribes after the last export — and someone has to remember to re-import it before every campaign send.
Compliance & suppression
Every send passes through a suppression check before dispatch, and every outbound email ships RFC 8058 one-click unsubscribe by default. Opt-outs, bounces, and complaints are honored automatically — there is no separate do-not-mail list to maintain and remember to apply.
The problem
[ 01 ]
A spreadsheet or CSV export of addresses to avoid is stale the moment someone unsubscribes after the last export — and someone has to remember to re-import it before every campaign send.
[ 02 ]
Re-mailing an address that already opted out isn’t just a deliverability problem — under CAN-SPAM, GDPR, and similar regimes, honoring an opt-out is a legal obligation, and “we forgot to update the list” is not a defense.
[ 03 ]
A hard-bounced address that keeps getting re-mailed because bounce feedback never made it back into a suppression list is one of the most common self-inflicted reputation problems in cold outbound.
[ 04 ]
If an opt-out on Campaign A doesn’t block Campaign B, or an unsubscribe on Domain 1 doesn’t block a resend from Domain 2, the address was never actually suppressed — it just looks that way until the next campaign proves otherwise.
How it works
Suppression is a hard gate inside the pipeline itself, not a list someone has to remember to check.
A hard bounce, three soft bounces within 14 days, a mailbox-provider spam complaint, and an RFC 8058 unsubscribe click all insert a row into suppressions with no human step in between — reason and origin_event recorded with each one.
Stage 2 of the pipeline calls suppressions.isSuppressed() before verification or dedup even run — a suppressed lead is rejected with reason: ‘suppressed’ and never reaches personalization, let alone dispatch.
The check matches the recipient’s exact address or its whole domain, and the table isn’t scoped to a campaign — a suppression added under one campaign blocks that address on every campaign after it, from any sending domain in the pool.
Every send carries List-Unsubscribe and List-Unsubscribe-Post: One-Click headers pointing at an HMAC-signed, per-recipient token — the same link Gmail’s and Outlook’s built-in Unsubscribe button hits directly, plus a mailto: fallback for older clients.
The mechanism, live
An illustrative example: bounces, complaints, and unsubscribe clicks land in the same suppression table automatically, with no manual export or re-import step.
outreach@northfield.example
Hard bounce · mailbox does not exist
hello@ridgeline.example
RFC 8058 one-click unsubscribe
@parklane.example (domain)
3rd soft bounce in 14 days
sales@westgate.example
Recipient marked the message as spam
info@millbrook.example
Manual GDPR erasure request
[ 01 ]
6
Suppression reasons tracked automatically
[ 02 ]
3 in 14 days
Soft bounces before an address auto-suppresses
[ 03 ]
Stage 2 of intersect()
Where every send is checked
Always enforced
Every opt-out, bounce, and complaint lands in the same table the moment it happens — and every future send, from any campaign, on any domain in the pool, is checked against it before it can go out. You never have to remember to apply it.
FAQ
Immediately — the one-click unsubscribe link or a mailbox provider’s built-in Unsubscribe button hits the token-verified route synchronously and inserts the suppression row before responding. The very next lead ingested or campaign run that touches that address is blocked at the intersect gate. There’s no batch job or delay in between.
Across all of them. The suppressions table isn’t scoped to a campaign or a domain — the intersect check runs the same lookup regardless of which campaign or which pooled sending domain is about to send, so an opt-out or bounce recorded anywhere blocks that address (or, for a domain-level entry, that whole domain) everywhere, going forward.
Every outbound message carries a List-Unsubscribe header with two targets — an HTTPS URL and a mailto: address — plus List-Unsubscribe-Post: One-Click, which tells Gmail and Outlook they can trigger the unsubscribe with a single POST and no page load. Both targets carry the same HMAC-SHA256-signed token, and either one lands on the same suppress() logic.
No — they’re separate guardrails for separate failure modes. Suppression stops individual bad sends to a specific address or domain before they happen; the circuit-breaker (see /features/reputation-circuit-breaker) watches aggregate, domain-level reputation signals and pauses a whole sending domain’s outbound traffic when it drifts.
The other guardrail watching your sending reputation: the reputation circuit-breaker.
Every email you send without protection is a gamble on whether it reaches the inbox at all. Bring your leads — CogniLead handles the warmup, the safety checks, and the cleanup, so you don't have to think about deliverability again.
100 sends a month, free forever · no credit card · cancel any time