Maximize your email deliverability by properly configuring authentication and following best practices.
Table of Contents
What is Deliverability?
Deliverability is the ability to get your emails into recipients’ inboxes rather than spam folders. Three key factors determine deliverability:
- Authentication - Prove you’re authorized to send from your domain
- Reputation - Your domain and IP sending history
- Content - Quality and relevance of your emails
Authentication Protocols
SPF (Sender Policy Framework)
What it does: Specifies which mail servers can send email on behalf of your domain.
How it works:
- You publish a DNS record listing authorized servers
- Receiving mail servers check this record
- If the sending server isn’t authorized, email may be marked as spam
TrackPost SPF Record:
v=spf1 include:amazonses.com ~all
Components explained:
v=spf1- SPF version 1include:amazonses.com- Allow AWS SES servers to send~all- Soft fail (mark suspicious but don’t reject)
Testing SPF:
# Check your SPF record
dig TXT yourdomain.com | grep spf
# Online tool
# https://mxtoolbox.com/spf.aspx
Common SPF Issues:
| Issue | Solution |
|---|---|
| Multiple SPF records | Merge into one record with multiple includes |
| Syntax errors | Use SPF validator tools |
| Missing include | Add include:amazonses.com |
| Too many lookups | Simplify record (max 10 lookups) |
Merging Multiple Services:
If using multiple email services:
# Before (separate records - WRONG!)
v=spf1 include:sendgrid.net ~all
v=spf1 include:amazonses.com ~all
# After (merged - CORRECT!)
v=spf1 include:sendgrid.net include:amazonses.com ~all
DKIM (DomainKeys Identified Mail)
What it does: Cryptographically signs emails to verify they weren’t modified and came from your domain.
How it works:
- AWS SES signs outgoing emails with a private key
- Public key is published in your DNS
- Receiving servers verify the signature
- If valid, email passes DKIM check
DKIM Records:
TrackPost provides two DKIM selectors:
Name: selector1._domainkey.yourdomain.com
Value: [long public key]
Name: selector2._domainkey.yourdomain.com
Value: [long public key]
Testing DKIM:
- Send a test email to yourself
- View email headers
- Look for:
DKIM-Signature: v=1; a=rsa-sha256; d=yourdomain.com; ...
Authentication-Results: dkim=pass
DKIM Key Rotation:
AWS automatically rotates DKIM keys. You’ll have two selectors active at any time for seamless rotation.
DMARC (Domain-based Message Authentication)
What it does: Tells email providers what to do when SPF or DKIM checks fail, and provides reporting.
DMARC Policies:
| Policy | Action | When to Use |
|---|---|---|
p=none | Monitor only | Initial setup (2-4 weeks) |
p=quarantine | Send to spam | After confirming SPF/DKIM work |
p=reject | Block email | High confidence in auth setup |
Basic DMARC Record:
Name: _dmarc.yourdomain.com
Value: v=DMARC1; p=none; rua=mailto:[email protected]
Advanced DMARC (with reporting):
v=DMARC1;
p=quarantine;
rua=mailto:[email protected];
ruf=mailto:[email protected];
fo=1;
adkim=r;
aspf=r;
pct=100
DMARC Components:
| Tag | Meaning | Example |
|---|---|---|
v | Version | DMARC1 |
p | Policy | none, quarantine, reject |
rua | Aggregate reports | mailto:[email protected] |
ruf | Forensic reports | mailto:[email protected] |
pct | Percentage to apply | 100, 50 |
adkim | DKIM alignment | r (relaxed), s (strict) |
aspf | SPF alignment | r (relaxed), s (strict) |
DMARC Graduation Strategy:
Week 1-4: p=none (monitor only)
Week 5-8: p=none; pct=10 (test with 10% of emails)
Week 9-12: p=quarantine; pct=10 (quarantine 10%)
Week 13-16: p=quarantine; pct=50 (quarantine 50%)
Week 17+: p=quarantine; pct=100 (full quarantine)
Month 6+: p=reject (if confident)
Testing Authentication
Method 1: Email Headers
Send yourself an email and check headers:
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of ... designates ... as permitted sender)
dkim=pass [email protected]
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yourdomain.com
Look for:
spf=passdkim=passdmarc=pass
Method 2: Online Tools
| Tool | URL | What it checks |
|---|---|---|
| MXToolbox | mxtoolbox.com | SPF, DKIM, DMARC |
| DMARC Analyzer | dmarcian.com | DMARC setup |
| Google Admin Toolbox | toolbox.googleapps.com | Multiple checks |
| Mail Tester | mail-tester.com | Overall deliverability |
Method 3: Command Line
# Check SPF
dig TXT yourdomain.com | grep spf
# Check DKIM
dig TXT selector1._domainkey.yourdomain.com
# Check DMARC
dig TXT _dmarc.yourdomain.com
Reputation Management
What Affects Reputation
Positive Factors:
- Low bounce rates (< 2%)
- Low complaint rates (< 0.1%)
- High engagement (opens, clicks)
- Consistent sending volume
- Authentication (SPF, DKIM, DMARC)
Negative Factors:
- High bounce rates
- High complaint/spam rates
- Sending to purchased lists
- Sudden volume spikes
- Lack of authentication
- Spammy content
Monitoring Your Reputation
AWS SES Reputation Dashboard:
- Log in to AWS SES Console
- Go to Reputation metrics
- Monitor:
- Bounce rate
- Complaint rate
- Reputation status
TrackPost Dashboard:
- Go to Analytics in your dashboard
- View bounce and complaint rates
- Monitor open/click rates
Reputation Tiers
| Status | Bounce Rate | Complaint Rate | Action |
|---|---|---|---|
| Healthy | < 2% | < 0.1% | Keep doing what you’re doing |
| At Risk | 2-5% | 0.1-0.3% | Review sending practices |
| Critical | > 5% | > 0.3% | Immediate action required |
Content Best Practices
Email Structure
✅ Do:
- Use clear, descriptive subject lines
- Include both HTML and plain text versions
- Keep HTML clean and valid
- Use recognizable “from” names
- Include clear unsubscribe links
❌ Don’t:
- Use all caps or excessive punctuation!!!
- Include too many images vs. text
- Hide unsubscribe links
- Use URL shorteners
- Include suspicious attachments
Subject Lines
✅ Good Examples:
- “Your order #12345 has shipped”
- “Welcome to Acme Inc - Confirm your email”
- “Password reset request”
❌ Bad Examples:
- “CONGRATULATIONS YOU WON!!!”
- “Act now!!! Limited time!!!”
- “Re: Re: Fwd: Important”
HTML Guidelines
- Text-to-Image Ratio: At least 60% text
- Alt Text: Always include alt text for images
- Responsive: Use mobile-friendly templates
- Size: Keep emails under 102KB
- Links: Use full URLs, not shortened links
IP and Domain Warming
What is Warming?
Gradually increasing email volume to build reputation with ISPs.
Warming Schedule
| Day | Daily Volume | Cumulative |
|---|---|---|
| 1-3 | 50 | 150 |
| 4-7 | 100 | 550 |
| 8-14 | 250 | 2,300 |
| 15-21 | 500 | 5,800 |
| 22-30 | 1,000 | 15,800 |
| 30+ | Normal volume | - |
Warming Best Practices:
- Start with your most engaged subscribers
- Send consistently (same time/day)
- Monitor bounce/complaint rates closely
- Don’t exceed 20% daily volume increase
- Pause if bounce rate exceeds 5%
List Management
List Hygiene
Remove addresses that:
- Bounce repeatedly (hard bounces)
- Mark as spam (complaints)
- Haven’t engaged in 6+ months
- Are role accounts (noreply@, admin@) without permission
Verification:
- Use double opt-in for signups
- Verify email format before adding
- Consider email verification services for bulk imports
Suppression Lists
TrackPost automatically suppresses:
- Hard bounces
- Spam complaints
- Unsubscribes
View suppressed addresses:
- Dashboard → Suppression List
- Or via API:
GET /suppressions
Troubleshooting Deliverability Issues
Emails Going to Spam
Checklist:
- ✅ SPF record published and valid
- ✅ DKIM enabled and working
- ✅ DMARC policy set
- ✅ Domain reputation good
- ✅ Content not spammy
- ✅ Sending IP not blacklisted
Tools to diagnose:
- Mail Tester - Score your email
- Google Postmaster Tools - Gmail-specific data
- Microsoft SNDS - Outlook/Hotmail data
High Bounce Rates
Causes:
- Invalid email addresses
- Full mailboxes
- Blocked by recipient server
- Greylisting (temporary rejection)
Solutions:
- Verify addresses before sending
- Implement double opt-in
- Check blocklists for your IP/domain
- Handle soft bounces with retry logic
Blacklisting
Check if blacklisted:
If blacklisted:
- Identify the cause (complaints, bad lists, etc.)
- Fix the underlying issue
- Request delisting from the blacklist
- Monitor closely going forward
Best Practices Summary
Technical Setup
- SPF record configured
- DKIM enabled
- DMARC policy implemented (start with
p=none) - Custom domain (not @gmail.com, @yahoo.com)
- Proper reverse DNS (PTR) records
List Management
- Double opt-in enabled
- Regular list cleaning
- Suppression management
- No purchased lists
Sending Practices
- Consistent sending schedule
- Gradual volume increases
- Monitor bounce/complaint rates
- Segment by engagement level
- Personalize content
Monitoring
- Check reputation dashboard weekly
- Review DMARC reports monthly
- Monitor deliverability metrics
- Set up alerts for issues
Next Steps
- Test Your Setup - Send test emails and check authentication
- Setup Webhooks - Monitor bounces and complaints in real-time
- Create Templates - Build professional, mobile-friendly emails
- Review Troubleshooting - Common issues and solutions