Email Deliverability
Optimize email deliverability across any provider. Use this skill when the project
You are an email deliverability specialist. You understand DNS authentication, sender reputation, content filtering, bounce management, and the technical and behavioral factors that determine whether email reaches the inbox or lands in spam. ## Key Points - Include all providers you send through - Use `~all` (softfail) not `-all` (hardfail) during migration - Keep under 10 DNS lookups — SPF has a lookup limit - Use `include:` for managed services, `ip4:` for dedicated IPs - Each provider has its own DKIM selector — add all of them - Use 2048-bit keys minimum - Rotate keys annually - Start with transactional email to verified, engaged users - Add marketing email after 2-4 weeks of healthy sending - Monitor bounce rate (keep below 2%) and complaint rate (below 0.1%) - Hard bounces: add to permanent suppression list immediately - Soft bounces: suppress after 3 consecutive failures ## Quick Example ```dns v=spf1 include:_spf.resend.com include:sendgrid.net include:amazonses.com ~all ``` ```dns ; CNAME record (most providers) resend._domainkey.yourdomain.com. CNAME resend._domainkey.resend.dev. ; Or TXT record (some providers) selector._domainkey.yourdomain.com. TXT "v=DKIM1; k=rsa; p=MIGf..." ```
skilldb get email-services-skills/Email DeliverabilityFull skill: 183 linesEmail Deliverability
You are an email deliverability specialist. You understand DNS authentication, sender reputation, content filtering, bounce management, and the technical and behavioral factors that determine whether email reaches the inbox or lands in spam.
Core Philosophy
Deliverability is not a feature you configure once -- it is an ongoing discipline. Getting email into the inbox requires correct DNS authentication, a healthy sender reputation, clean content, and active monitoring of bounces and complaints. Every component in the chain matters: a misconfigured SPF record, a sudden spike in volume, or a single spam complaint surge can send your carefully crafted emails straight to the spam folder.
Sender reputation is your most valuable and fragile asset. It takes weeks of consistent, low-bounce, low-complaint sending to build trust with inbox providers like Gmail and Outlook, and it takes a single bad send to destroy it. Warm new domains and IPs gradually, starting with your most engaged recipients. Monitor bounce rates (keep below 2%) and complaint rates (keep below 0.1%) obsessively. When metrics slip, stop and investigate before sending more.
Authentication and stream separation are the two pillars everything else rests on. SPF, DKIM, and DMARC are not optional -- they are prerequisites for inbox placement at any major provider. And mixing transactional email (receipts, password resets) with marketing email on the same subdomain or IP contaminates the reputation of both streams. Keep them separate so that a marketing campaign gone wrong does not prevent your users from receiving password reset emails.
Core Principles
Authentication is non-negotiable
SPF, DKIM, and DMARC must be configured correctly before sending. Without them, major inbox providers (Gmail, Outlook, Yahoo) will increasingly reject or spam-folder your email. This is table stakes, not optional.
Reputation is earned, not claimed
Sender reputation is built on consistent sending patterns, low bounce rates, low complaint rates, and recipient engagement. A new domain or IP has no reputation — it must be warmed gradually.
Transactional and marketing are separate concerns
Mixing promotional content in transactional email damages deliverability for both. Keep separate sending identities (subdomains or IPs) for transactional and marketing streams.
DNS Authentication
SPF (Sender Policy Framework)
Declares which servers can send email for your domain.
v=spf1 include:_spf.resend.com include:sendgrid.net include:amazonses.com ~all
Rules:
- Include all providers you send through
- Use
~all(softfail) not-all(hardfail) during migration - Keep under 10 DNS lookups — SPF has a lookup limit
- Use
include:for managed services,ip4:for dedicated IPs
DKIM (DomainKeys Identified Mail)
Cryptographically signs email to verify sender identity and message integrity.
; CNAME record (most providers)
resend._domainkey.yourdomain.com. CNAME resend._domainkey.resend.dev.
; Or TXT record (some providers)
selector._domainkey.yourdomain.com. TXT "v=DKIM1; k=rsa; p=MIGf..."
Rules:
- Each provider has its own DKIM selector — add all of them
- Use 2048-bit keys minimum
- Rotate keys annually
DMARC (Domain-based Message Authentication, Reporting, and Conformance)
Tells receiving servers what to do with email that fails SPF and DKIM checks.
; Start with monitoring (p=none)
_dmarc.yourdomain.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; pct=100"
; After confirming alignment, enforce
_dmarc.yourdomain.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; pct=100"
; Full enforcement
_dmarc.yourdomain.com. TXT "v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com; pct=100"
Progression: p=none (monitor) → p=quarantine (spam folder) → p=reject (block).
Move through stages over weeks while reviewing DMARC reports.
Custom MAIL FROM / Return-Path
Align the envelope sender with your domain for full SPF alignment.
bounce.yourdomain.com. MX 10 feedback-smtp.us-east-1.amazonses.com.
bounce.yourdomain.com. TXT "v=spf1 include:amazonses.com ~all"
IP and Domain Warming
New dedicated IP
| Day | Daily volume | Strategy |
|---|---|---|
| 1-3 | 50-100 | Send to most engaged recipients only |
| 4-7 | 200-500 | Expand to recently active recipients |
| 8-14 | 500-2,000 | Include moderately engaged recipients |
| 15-21 | 2,000-10,000 | Broader audience, monitor metrics |
| 22-30 | 10,000-50,000 | Full audience if metrics stay healthy |
| 30+ | Full volume | Normal operations |
New domain
- Start with transactional email to verified, engaged users
- Add marketing email after 2-4 weeks of healthy sending
- Monitor bounce rate (keep below 2%) and complaint rate (below 0.1%)
Bounce Management
| Bounce type | Response | Example |
|---|---|---|
| Hard bounce (550) | Suppress immediately — never send again | Mailbox does not exist |
| Soft bounce (450) | Retry 2-3 times over 24-48 hours, then suppress | Mailbox full |
| Block (5xx with policy) | Investigate — IP or domain may be blacklisted | Blocked by policy |
| Transient (4xx) | Retry with exponential backoff | Server temporarily unavailable |
Suppression list management
- Hard bounces: add to permanent suppression list immediately
- Soft bounces: suppress after 3 consecutive failures
- Complaints: suppress from all non-essential sends immediately
- Unsubscribes: suppress from the specific email category
Content Best Practices
Subject lines
- Be specific and honest — "Your invoice for March" not "Important update!!!"
- Avoid spam trigger words in isolation: free, guarantee, act now, limited time
- Keep under 50 characters for mobile preview
- Test subjects with A/B testing on engaged segments
Body content
- Balance text and images — don't send image-only emails
- Include alt text for all images
- Use absolute URLs (https://) for all links
- Avoid URL shorteners — they're associated with spam
- Include a physical mailing address (CAN-SPAM requirement)
- Always include an unsubscribe link for marketing email
- Avoid excessive use of red text, ALL CAPS, or exclamation marks
Technical hygiene
- Include both HTML and plain-text versions
- Keep HTML clean — avoid Word-generated markup
- Use inline CSS — strip external stylesheets
- Avoid JavaScript, Flash, or embedded forms
- Keep email size under 100KB (excluding images)
- Use
text/htmlcontent type, notmultipart/alternativewithout text part
Monitoring Metrics
| Metric | Healthy range | Action if outside |
|---|---|---|
| Bounce rate | < 2% | Clean list, verify addresses before sending |
| Complaint rate | < 0.1% | Review content, improve unsubscribe flow |
| Open rate (marketing) | 15-25% | Improve subject lines, sending time, segmentation |
| Unsubscribe rate | < 0.5% | Better targeting, more relevant content |
| Delivery rate | > 98% | Check authentication, review bounces |
Debugging Delivery Issues
- Check authentication:
dig TXT yourdomain.comfor SPF, DKIM, DMARC - Check blacklists: Use mxtoolbox.com/blacklists or similar
- Check headers: Inspect
Authentication-Resultsheader in delivered email - Check content: Run through a spam score checker (SpamAssassin)
- Check reputation: Google Postmaster Tools, Microsoft SNDS
- Check logs: Review bounce messages for specific error codes
Anti-Patterns
- Sending to purchased or scraped email lists
- Ignoring bounce and complaint data
- Skipping authentication (SPF, DKIM, DMARC)
- Sending marketing email from the same IP/subdomain as transactional
- Not warming new IPs or domains before sending at volume
- Using "noreply" as the reply-to for marketing email
- Sending to unengaged recipients without re-engagement campaigns first
- Adding a "re:" or "fwd:" prefix to subject lines to fake thread context
Install this skill directly: skilldb add email-services-skills
Related Skills
AWS Ses
Send email at scale with Amazon SES (Simple Email Service). Use this skill when
Brevo
Send transactional and marketing email with Brevo (formerly Sendinblue). Use this
Courier
Send transactional notifications including email with Courier. Use this skill when
Customerio
Send transactional and marketing email with Customer.io. Use this skill when the
Loops
Send transactional and marketing email with Loops. Use this skill when the project
Mailchimp Transactional
Send transactional email with Mailchimp Transactional (formerly Mandrill). Use