Skill — Email Deliverability (Authentication & Reputation Architecture)
When this skill activates
When configuring email sending infrastructure, troubleshooting delivery issues,
warming up new sending domains/IPs, or architecting transactional vs marketing
email separation. Use for any task that affects whether emails reach the inbox.
Core principle: Reputation is everything — email deliverability is a long game.
One bad send can destroy months of reputation building. Protect sender reputation
like you protect production uptime.
Mandatory actions when this skill is active
Email Authentication Trio (Non-Negotiable)
SPF (Sender Policy Framework):
; Authorize sending IPs/services
v=spf1 include:_spf.google.com include:sendgrid.net include:amazonses.com -all
Rules:
- List ALL authorized sending services (ESP, transactional provider, corporate mail)
- End with
-all (hard fail) not ~all (soft fail) for production domains
- Maximum 10 DNS lookups (SPF limit) — use
include sparingly
- Audit quarterly: remove services you no longer use
- Never authorize
+all (allows anyone to send as you)
DKIM (DomainKeys Identified Mail):
; Public key for signature verification
selector1._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=[public_key]"
Rules:
- Every sending service gets its own DKIM selector
- Minimum 2048-bit RSA key (1024-bit is deprecated)
- Rotate keys annually (publish new key, wait 48h, remove old)
- Sign with your own domain (not the ESP's domain) for reputation ownership
- Verify signatures are passing: check DKIM alignment in email headers
DMARC (Domain-based Message Authentication, Reporting & Conformance):
; Tell receivers what to do with failures
_dmarc.example.com IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100"
Deployment progression:
Week 1-2: p=none (monitor only, collect reports)
Week 3-4: p=quarantine; pct=10 (quarantine 10% of failures)
Week 5-6: p=quarantine; pct=50
Week 7-8: p=quarantine; pct=100
Week 9+: p=reject (full enforcement — unauthenticated mail rejected)
Rules:
- ALWAYS start at p=none and progress gradually
- Monitor DMARC reports (rua) weekly for legitimate sending you missed
- Goal state: p=reject (maximum protection against spoofing)
- Ensure both SPF and DKIM alignment pass (DMARC requires at least one)
IP/Domain Warm-Up
Warm-up schedule for new sending infrastructure:
Day 1-3: 50 emails/day (to most engaged recipients only)
Day 4-7: 100 emails/day
Week 2: 200-500/day
Week 3: 500-1,000/day
Week 4: 1,000-5,000/day
Week 5: 5,000-10,000/day
Week 6+: Increase 2x per week until target volume
Rules:
- Send to MOST ENGAGED recipients first (opened/clicked in last 30 days)
- Monitor bounce rate after each volume increase (must stay <2%)
- If bounce rate spikes: stop, investigate, reduce volume
- Warm-up separately for each mailbox provider (Gmail, Outlook, Yahoo)
- Transactional and marketing should warm up independently
- Warm-up takes 6-8 weeks minimum — no shortcuts
Sender Reputation Monitoring
Key metrics and thresholds:
| Metric | Healthy | Warning | Critical |
|----------------------|------------|------------|------------|
| Bounce rate | <1% | 1-2% | >2% |
| Complaint rate | <0.05% | 0.05-0.1% | >0.1% |
| Open rate | >20% | 10-20% | <10% |
| Spam trap hits | 0 | 1-2/month | >2/month |
| Blacklist presence | None | 1 minor | Major list |
Actions:
- Warning threshold: investigate root cause, adjust sending patterns
- Critical threshold: STOP marketing sends immediately, fix before resuming
- Monitor Google Postmaster Tools, Microsoft SNDS, Yahoo FBL daily
- Set up alerts for threshold crossings
Bounce Handling
- Bounce classification and response:
Hard bounce (permanent failure):
- Invalid address, domain doesn't exist, mailbox doesn't exist
- Action: Remove from list IMMEDIATELY (first occurrence)
- Never retry a hard bounce
Soft bounce (temporary failure):
- Mailbox full, server temporarily unavailable, message too large
- Action: Retry up to 3 times over 72 hours
- After 3 soft bounces on same address: treat as hard bounce and suppress
Complaint (user clicked "spam"):
- Action: Suppress IMMEDIATELY, never email again
- Process FBL (Feedback Loop) reports within 1 hour
- If complaint rate rises: review recent sends for consent issues
List Hygiene
- Ongoing list maintenance:
- Remove hard bounces: immediately
- Suppress complaints: immediately
- Remove unengaged: no open/click in 90 days → sunset sequence → remove
- Validate on signup: real-time email validation API (catch typos, disposable domains)
- Re-validate periodically: quarterly bulk validation of full list
- Double opt-in: recommended for all marketing (required in some jurisdictions)
Architecture (Transactional vs Marketing Separation)
Separate sending infrastructure:
Transactional email (receipts, password resets, 2FA):
- Dedicated IP/subdomain: mail.example.com
- Priority: immediate delivery (no batching)
- Volume: consistent, predictable
- Reputation: protected (never mixed with marketing)
Marketing email (newsletters, promotions, re-engagement):
- Dedicated IP/subdomain: news.example.com
- Priority: send-time optimized (batch by timezone/engagement)
- Volume: variable, seasonal spikes
- Reputation: more volatile (isolated from transactional)
Rules:
- NEVER share IPs between transactional and marketing
- Transactional emails must not contain marketing content (CAN-SPAM)
- If marketing reputation degrades, transactional delivery is unaffected
- Use subdomain separation (not just IP) for domain reputation isolation
Self-check before task completion
Before marking a task done when this skill was active:
1---2name: email-deliverability3description: Skill — Email Deliverability (Authentication & Reputation Architecture)4---56# Skill — Email Deliverability (Authentication & Reputation Architecture)78## When this skill activates9When configuring email sending infrastructure, troubleshooting delivery issues,10warming up new sending domains/IPs, or architecting transactional vs marketing11email separation. Use for any task that affects whether emails reach the inbox.1213Core principle: **Reputation is everything** — email deliverability is a long game.14One bad send can destroy months of reputation building. Protect sender reputation15like you protect production uptime.1617## Mandatory actions when this skill is active1819### Email Authentication Trio (Non-Negotiable)20211. **SPF (Sender Policy Framework):**22 ```dns23 ; Authorize sending IPs/services24 v=spf1 include:_spf.google.com include:sendgrid.net include:amazonses.com -all25 ```2627 Rules:28 - List ALL authorized sending services (ESP, transactional provider, corporate mail)29 - End with `-all` (hard fail) not `~all` (soft fail) for production domains30 - Maximum 10 DNS lookups (SPF limit) — use `include` sparingly31 - Audit quarterly: remove services you no longer use32 - Never authorize `+all` (allows anyone to send as you)33342. **DKIM (DomainKeys Identified Mail):**35 ```dns36 ; Public key for signature verification37 selector1._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=[public_key]"38 ```3940 Rules:41 - Every sending service gets its own DKIM selector42 - Minimum 2048-bit RSA key (1024-bit is deprecated)43 - Rotate keys annually (publish new key, wait 48h, remove old)44 - Sign with your own domain (not the ESP's domain) for reputation ownership45 - Verify signatures are passing: check DKIM alignment in email headers46473. **DMARC (Domain-based Message Authentication, Reporting & Conformance):**48 ```dns49 ; Tell receivers what to do with failures50 _dmarc.example.com IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100"51 ```5253 Deployment progression:54 ```55 Week 1-2: p=none (monitor only, collect reports)56 Week 3-4: p=quarantine; pct=10 (quarantine 10% of failures)57 Week 5-6: p=quarantine; pct=5058 Week 7-8: p=quarantine; pct=10059 Week 9+: p=reject (full enforcement — unauthenticated mail rejected)60 ```6162 Rules:63 - ALWAYS start at p=none and progress gradually64 - Monitor DMARC reports (rua) weekly for legitimate sending you missed65 - Goal state: p=reject (maximum protection against spoofing)66 - Ensure both SPF and DKIM alignment pass (DMARC requires at least one)6768### IP/Domain Warm-Up69704. **Warm-up schedule for new sending infrastructure:**71 ```72 Day 1-3: 50 emails/day (to most engaged recipients only)73 Day 4-7: 100 emails/day74 Week 2: 200-500/day75 Week 3: 500-1,000/day76 Week 4: 1,000-5,000/day77 Week 5: 5,000-10,000/day78 Week 6+: Increase 2x per week until target volume79 ```8081 Rules:82 - Send to MOST ENGAGED recipients first (opened/clicked in last 30 days)83 - Monitor bounce rate after each volume increase (must stay <2%)84 - If bounce rate spikes: stop, investigate, reduce volume85 - Warm-up separately for each mailbox provider (Gmail, Outlook, Yahoo)86 - Transactional and marketing should warm up independently87 - Warm-up takes 6-8 weeks minimum — no shortcuts8889### Sender Reputation Monitoring90915. **Key metrics and thresholds:**92 ```93 | Metric | Healthy | Warning | Critical |94 |----------------------|------------|------------|------------|95 | Bounce rate | <1% | 1-2% | >2% |96 | Complaint rate | <0.05% | 0.05-0.1% | >0.1% |97 | Open rate | >20% | 10-20% | <10% |98 | Spam trap hits | 0 | 1-2/month | >2/month |99 | Blacklist presence | None | 1 minor | Major list |100 ```101102 Actions:103 - Warning threshold: investigate root cause, adjust sending patterns104 - Critical threshold: STOP marketing sends immediately, fix before resuming105 - Monitor Google Postmaster Tools, Microsoft SNDS, Yahoo FBL daily106 - Set up alerts for threshold crossings107108### Bounce Handling1091106. **Bounce classification and response:**111 ```112 Hard bounce (permanent failure):113 - Invalid address, domain doesn't exist, mailbox doesn't exist114 - Action: Remove from list IMMEDIATELY (first occurrence)115 - Never retry a hard bounce116117 Soft bounce (temporary failure):118 - Mailbox full, server temporarily unavailable, message too large119 - Action: Retry up to 3 times over 72 hours120 - After 3 soft bounces on same address: treat as hard bounce and suppress121122 Complaint (user clicked "spam"):123 - Action: Suppress IMMEDIATELY, never email again124 - Process FBL (Feedback Loop) reports within 1 hour125 - If complaint rate rises: review recent sends for consent issues126 ```127128### List Hygiene1291307. **Ongoing list maintenance:**131 ```132 - Remove hard bounces: immediately133 - Suppress complaints: immediately134 - Remove unengaged: no open/click in 90 days → sunset sequence → remove135 - Validate on signup: real-time email validation API (catch typos, disposable domains)136 - Re-validate periodically: quarterly bulk validation of full list137 - Double opt-in: recommended for all marketing (required in some jurisdictions)138 ```139140### Architecture (Transactional vs Marketing Separation)1411428. **Separate sending infrastructure:**143 ```144 Transactional email (receipts, password resets, 2FA):145 - Dedicated IP/subdomain: mail.example.com146 - Priority: immediate delivery (no batching)147 - Volume: consistent, predictable148 - Reputation: protected (never mixed with marketing)149150 Marketing email (newsletters, promotions, re-engagement):151 - Dedicated IP/subdomain: news.example.com152 - Priority: send-time optimized (batch by timezone/engagement)153 - Volume: variable, seasonal spikes154 - Reputation: more volatile (isolated from transactional)155 ```156157 Rules:158 - NEVER share IPs between transactional and marketing159 - Transactional emails must not contain marketing content (CAN-SPAM)160 - If marketing reputation degrades, transactional delivery is unaffected161 - Use subdomain separation (not just IP) for domain reputation isolation162163## Self-check before task completion164165Before marking a task done when this skill was active:166167- [ ] Are SPF, DKIM, and DMARC all configured and passing alignment?168- [ ] Is DMARC at p=quarantine or p=reject (not indefinitely at p=none)?169- [ ] Is there a warm-up plan for any new IPs/domains (starting at 50/day)?170- [ ] Are bounce rate (<2%) and complaint rate (<0.1%) being monitored with alerts?171- [ ] Are hard bounces removed immediately and complaints suppressed?172- [ ] Is transactional email on a separate IP/subdomain from marketing?173- [ ] Is there a sunset policy for unengaged recipients (90-day inactivity)?174- [ ] Are real-time email validation and double opt-in implemented for new signups?