email-marketing
Expert email marketing covering deliverability fundamentals, list hygiene, segmentation, automation flows, copywriting, transactional vs marketing email separation, HTML rendering, and key metrics including the post-MPP measurement landscape. Trigger phrases: email marketing, email deliverability, S
Email Marketing
Email remains the highest-ROI marketing channel — $36-42 return for every $1 spent according to industry benchmarks. But it only works if your emails land in the inbox. Deliverability is the foundation everything else builds on. Most email marketing failures are deliverability failures in disguise: low engagement leading to spam classification leading to declining open rates leading to "email is dead" conclusions that are wrong.
Core Mental Model
Think of email deliverability as a trust score with internet service providers (ISPs) and email clients. Every send either deposits trust (high opens, clicks, replies) or withdraws it (spam complaints, bounces, low engagement). ISPs like Gmail, Outlook, and Apple Mail build a reputation model for your domain and IP. Send to disengaged lists and your reputation tanks, affecting even your best subscribers.
The email funnel: Delivered → Inboxed → Opened → Clicked → Converted. Optimization at each step compounds. A 20% improvement in deliverability + 20% improvement in open rate = 44% more people seeing your call to action.
Deliverability Fundamentals
SPF, DKIM, DMARC Setup
These three DNS records authenticate that your emails come from you and aren't spoofed. Without them, Gmail/Outlook increasingly relegate you to spam.
SPF (Sender Policy Framework)
Type: TXT record on your domain
Authorizes which servers can send email on behalf of your domain
Example:
DNS Record: v=spf1 include:sendgrid.net include:_spf.google.com ~all
Breakdown:
v=spf1 → SPF version 1
include:sendgrid.net → SendGrid's servers are authorized
include:_spf.google.com → Google Workspace authorized (if using Gmail to send)
~all → softfail everything else (~ = soft, - = hard fail)
Use -all if you're sure of all senders; ~all is safer while setting up.
---
DKIM (DomainKeys Identified Mail)
Type: TXT record on a subdomain
Attaches a cryptographic signature to prove the email wasn't tampered with
Your ESP (SendGrid, Mailchimp, etc.) generates this and gives you the DNS records.
Example subdomain: s1._domainkey.yourdomain.com
Verify with: dig TXT s1._domainkey.yourdomain.com
---
DMARC (Domain-based Message Authentication Reporting & Conformance)
Type: TXT record: _dmarc.yourdomain.com
Tells ISPs what to do when SPF/DKIM fail, and sends you reports
Recommended progression:
Phase 1 (monitoring):
v=DMARC1; p=none; rua=mailto:[email protected]
Phase 2 (quarantine — start here after 30 days of clean reports):
v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]
Phase 3 (full enforcement):
v=DMARC1; p=reject; rua=mailto:[email protected]
p=none: Monitor only, no enforcement
p=quarantine: Failing emails go to spam
p=reject: Failing emails rejected outright
---
Google/Yahoo 2024 requirement:
Sending > 5,000 emails/day to Gmail requires:
- SPF or DKIM (both recommended)
- DMARC with p=none minimum
- Valid unsubscribe header
- < 0.3% spam complaint rate
Domain Reputation
Domain age matters: New domains have low trust. Don't send bulk email from a
fresh domain — warm it up first.
Subdomain strategy:
marketing.yourdomain.com → bulk marketing emails
send.yourdomain.com → transactional/triggered emails
yourdomain.com → user replies and customer comms
Separating subdomains isolates reputation:
If marketing emails get spam complaints, transactional emails still deliver.
Sender reputation monitoring:
- Google Postmaster Tools (free, shows your Gmail reputation)
- Validity Sender Score (free lookup: senderscore.org)
- MXToolbox (free DNS/blacklist lookup)
- Postmaster Tools spam rate: keep < 0.08% for safety (< 0.3% required)
IP Warmup for New Senders
Week 1: Send to 200-500 most engaged users (recent openers/clickers)
Week 2: Scale to 1,000-2,000
Week 3: Scale to 5,000-10,000
Week 4+: Scale by 2x each week until desired volume
Rules during warmup:
- Send ONLY to highly engaged subscribers (last 30-day openers)
- Use consistent sender name/email
- Monitor bounce rate daily (> 2% = pause and investigate)
- Monitor spam complaint rate (> 0.1% = pause immediately)
- Use dedicated IP from ESP, not shared pool
List Hygiene
Bounce Types
HARD BOUNCE: Permanent delivery failure — email address doesn't exist
→ Action: Remove IMMEDIATELY. Continuing to send damages reputation.
→ Common causes: Mistyped address, domain doesn't exist, account closed
SOFT BOUNCE: Temporary delivery failure — mailbox full, server down
→ Action: Retry 3-5 times over 48 hours; remove if still bouncing after 5 attempts
→ Common causes: Inbox full, server temporarily down, message too large
Your ESP handles most bounce processing automatically.
Set hard bounce auto-suppression (usually on by default).
Review bounces monthly; > 2% bounce rate = list hygiene problem.
Unsubscribe Handling
Legal requirements (CAN-SPAM, GDPR, CASL):
- Unsubscribe mechanism required in every commercial email
- Unsubscribes must be processed within 10 business days (CAN-SPAM)
→ Best practice: Process immediately
- Cannot require login to unsubscribe
- One-click unsubscribe now required by Gmail/Yahoo for bulk senders
Technical implementation:
List-Unsubscribe: <mailto:[email protected]>, <https://yourdomain.com/unsubscribe?id=XXXX>
List-Unsubscribe-Post: List-Unsubscribe=One-Click ← required for Gmail compliance
Suppression list: maintain a permanent do-not-email list.
Even if someone re-subscribes, check against suppression first.
Re-engagement Campaigns Before Pruning
Before deleting inactive subscribers (no open in 90+ days):
Run a re-engagement sequence:
Email 1 (day 0): "We've missed you — is this still your email?"
→ Subject: "Still interested in [Company]?"
→ CTA: "Yes, keep me subscribed" button
→ Track who clicks
Email 2 (day 7): "Last chance to stay"
→ Subject: "We're about to say goodbye..."
→ Clear value reminder
→ CTA: "Stay subscribed"
Email 3 (day 14): "We're removing you — here's why"
→ Subject: "Removing you from our list tomorrow"
→ Final chance + unsubscribe confirmation
→ CTA: "Stay on the list"
After sequence: Remove everyone who didn't click any CTA.
Result: Smaller list, MUCH higher engagement rates, better deliverability.
Segmentation Strategy
Behavioral Segmentation
# SQL-based segmentation logic (adapt to your data warehouse)
-- Engaged subscribers (target for primary campaigns)
SELECT user_id, email
FROM email_subscribers
WHERE last_opened_at > NOW() - INTERVAL '30 days'
OR last_clicked_at > NOW() - INTERVAL '60 days'
AND unsubscribed = false
AND hard_bounced = false;
-- At-risk subscribers (re-engagement sequence)
SELECT user_id, email
FROM email_subscribers
WHERE last_opened_at BETWEEN NOW() - INTERVAL '90 days'
AND NOW() - INTERVAL '30 days'
AND last_clicked_at < NOW() - INTERVAL '90 days';
-- New subscribers (welcome series)
SELECT user_id, email
FROM email_subscribers
WHERE subscribed_at > NOW() - INTERVAL '7 days'
AND welcome_series_completed = false;
RFM Segmentation (Ecommerce)
RFM = Recency × Frequency × Monetary
Score each dimension 1-5:
Recency: 5 = bought in last 30d, 1 = > 365d
Frequency: 5 = 10+ purchases, 1 = 1 purchase
Monetary: 5 = top 20% by spend, 1 = bottom 20%
Segments:
Champions (R5 F5 M5): Send VIP offers, early access
Loyal Users (R3-5 F3-5): Reward programs, product announcements
At Risk (R2 F4 M4): Win-back with personal reach out
Hibernating (R1 F1 M1): Aggressive win-back or suppression
Email Automation Flows
Welcome Series Structure
Email 1 (immediate): Welcome + confirm email/set expectations
Goal: Confirm the relationship, deliver promised lead magnet if applicable
Subject: "Welcome to [Company] — here's what to expect"
Email 2 (day 2): Teach the core value
Goal: Aha moment in email form
Subject: "The one thing most [audience] don't realize about [topic]"
Email 3 (day 4): Social proof + use case
Goal: "People like me use this"
Subject: "How [Similar Company] achieved [Result]"
Email 4 (day 7): Soft product CTA
Goal: Convert engaged readers to trial/free tier
Subject: "Ready to try [Product]? Here's where to start"
Email 5 (day 14): Value-add resource
Goal: Nurture non-converters, deepen trust
Subject: "[Template / Guide / Resource] for [Audience]"
Email 6 (day 21): Direct ask (if still non-converted)
Goal: Clear conversion CTA
Subject: "Still thinking about it? Here's what our users say"
Onboarding Drip (for free trial users)
Day 0: Account created → "You're in! First step: [aha moment action]"
Day 1: If not activated → Reminder + video walkthrough
Day 3: Activated? → "Nice work! Here's your next move"
Not activated? → "Need help? Here's our 5-min setup guide"
Day 7: Feature highlight (most valuable advanced feature)
Day 14: Mid-trial review → "You have 7 days left — questions?"
Day 19: Trial ending soon → "Trial ends in 2 days. Ready to upgrade?"
Day 21: Trial ended → Conversion offer (discount or feature unlock)
Day 28: Post-trial → Win-back with case study
Abandoned Cart (Ecommerce)
Email 1 (1 hour after abandonment):
Subject: "You left something in your cart"
→ Show cart contents, single CTA to return
→ No discount (test without first)
Email 2 (24 hours after):
Subject: "Still thinking it over? [Product] is still waiting"
→ Add social proof (reviews, ratings)
→ Optional: small incentive (free shipping, 5% off)
Email 3 (72 hours after):
Subject: "[Product] — yours for [% off] for the next 24 hours"
→ Final push with urgency + discount
→ Link directly to checkout (not homepage)
Conversion rate benchmark: 5-15% of abandoned cart emails convert
Revenue impact: typically 3-5% of total ecommerce revenue
Copywriting Principles
Subject Line Formulas
CURIOSITY: "The email mistake killing your deliverability"
BENEFIT: "Get 3x more opens with this subject line trick"
QUESTION: "Are you making this onboarding mistake?"
SOCIAL: "7,432 founders already use this framework"
URGENCY: "48 hours: early access ends tonight"
PERSONAL: "[First Name], your account setup is incomplete"
STORY: "I was about to fire our marketing agency when..."
NUMBER: "9 email automations you should set up this week"
Subject line A/B test rules:
- Change ONE variable (curiosity vs benefit is a valid test)
- Run on 20% of list each; winner sends to remaining 60%
- Min 4-6 hours before picking winner (allow open lag)
- Test at same time of day/week for fair comparison
Preview text (often ignored, always important):
Appears after subject line in inbox preview. If blank, email clients
pull first text from email body — often "View in browser" = wasted real estate.
Good: Subject: "The email mistake killing your deliverability"
Preview: "And how 3 DNS records fix it permanently"
Bad: Preview: "View this email in your browser | Unsubscribe"
Single CTA Rule
Each email = ONE primary action. Multiple CTAs dilute clicks.
✅ GOOD:
Body copy: Context, value, story
Primary CTA button: "Start Your Free Trial"
[Everything else is navigation distraction]
❌ BAD:
"Start your free trial"
"Read our case study"
"Follow us on Twitter"
"View our pricing"
"Book a demo"
[Decision paralysis → none clicked]
Exception: Re-engagement emails (yes/no: stay/unsubscribe)
and newsletters (multiple articles is the format)
Transactional vs Marketing Email
TRANSACTIONAL: Triggered by user action; expected by the user
Examples: Receipt, password reset, account verification, shipping notification
Send from: Separate subdomain (send.domain.com or mail.domain.com)
IP: Separate dedicated IP from marketing emails
Rules: Not subject to CAN-SPAM opt-out requirements (but include one anyway)
Priority: Deliverability is critical — use separate infrastructure
MARKETING: Promotional; not triggered by specific user action
Examples: Newsletters, product announcements, promotions, re-engagement
Send from: marketing.domain.com
IP: Can be shared pool or dedicated (shared OK for < 50K/month)
Rules: Subject to CAN-SPAM, CASL, GDPR — unsubscribe required
Priority: Engagement rate is critical — list hygiene essential
WHY SEPARATE THEM:
If your marketing emails get spam complaints (inevitable at scale),
it doesn't tank your transactional email deliverability.
Password reset emails in spam = support nightmares.
HTML Email Rendering
Outlook Quirks (MSO Conditionals)
Outlook (desktop) uses the Word rendering engine, not a browser. This causes most cross-client issues.
<!-- MSO conditional comments for Outlook-specific fixes -->
<!--[if mso]>
<table cellpadding="0" cellspacing="0" border="0">
<tr><td>
<![endif]-->
<div class="button">Click Me</div>
<!--[if mso]>
</td></tr>
</table>
<![endif]-->
<!-- Outlook doesn't support max-width on divs; use tables -->
<!--[if mso]>
<table width="600" align="center"><tr><td>
<![endif]-->
<div style="max-width: 600px; margin: 0 auto;">
<!-- email body -->
</div>
<!--[if mso]>
</td></tr></table>
<![endif]-->
CSS Support Reference
Supported in most clients:
✅ Inline styles (always use these as primary)
✅ Basic CSS in <style> tag (not in all clients)
✅ max-width
✅ padding, margin (on tables in Outlook)
✅ background-color on table cells (in Outlook)
NOT reliably supported:
❌ CSS Grid (no Outlook support)
❌ Flexbox (no Outlook support)
❌ Web fonts (partial support — always include fallback stack)
❌ position: absolute/fixed (limited support)
❌ border-radius (partial Outlook support)
❌ box-shadow (no Outlook support)
❌ CSS animations (no Outlook/many clients)
Safe web fonts:
Arial, Helvetica Neue, Georgia, Times New Roman, Courier New
Fallback stack: font-family: 'Custom Font', Arial, sans-serif;
Responsive Email Without Media Queries
<!-- Fluid-hybrid approach (works without media queries) -->
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center">
<!-- Max-width container -->
<table width="600" cellpadding="0" cellspacing="0" border="0"
style="max-width: 600px; width: 100%;">
<tr>
<!-- Fluid column that squishes on mobile -->
<td style="padding: 24px;" width="100%">
<img src="hero.png" width="100%" alt="Hero image"
style="display: block; max-width: 600px; width: 100%;" />
</td>
</tr>
</table>
</td>
</tr>
</table>
Metrics
Post-MPP Reality (Apple Mail Privacy Protection)
Apple's MPP (2021+) pre-fetches email images, inflating open rates.
Now: "open rate" includes Apple's robot opens alongside human opens.
Open rate: Unreliable as a performance metric
→ Still useful for: deliverability signals (drastic drop = inbox issue)
subject line split tests (relative comparison still works)
→ Not useful for: campaign performance judgment, subscriber engagement scoring
Better engagement metrics:
Click-to-open rate (CTOR): Clicks / Unique Opens
→ Ignores robot opens in denominator (still slightly impacted)
→ Better proxy for content engagement than clicks alone
Click rate: Unique clicks / Total delivered
→ Not inflated by MPP; true measure of content engagement
Conversion rate: [Goal completions] / Total delivered
→ The only metric that matters for revenue
Revenue per email: Total revenue attributed / Total delivered
→ Best business metric for campaign comparison
Metrics Benchmarks by Industry
B2B SaaS:
Open rate (with MPP inflation): 25-40%
Click rate: 3-5%
Unsubscribe rate: < 0.5% per send
Ecommerce:
Open rate: 20-30%
Click rate: 2-4%
Conversion rate from email: 1-3%
Revenue per email: $0.10-$0.50
Newsletter (editorial):
Open rate: 30-60% (direct subscribers are highly engaged)
Click rate: 5-15%
List growth rate: 2-5% per month
List growth rate = (new subscribers - unsubscribes) / total list × 100
Healthy: > 0% growth (positive net growth)
Warning: Declining list size with no suppression pruning
Anti-Patterns
❌ Buying email lists — Cold lists have no relationship with you, guarantee high spam rates, and violate GDPR/CAN-SPAM. Domain reputation destruction.
❌ No double opt-in for marketing emails — Single opt-in leads to higher typos, fake emails, and spam traps. Double opt-in lists have 2x better deliverability.
❌ Sending marketing from your transactional domain — One spam complaint wave can break password reset deliverability.
❌ Open rate as the primary KPI — Post-MPP, it's unreliable. Use click rate and conversion rate.
❌ Ignoring unsubscribes — Unsubscribes are BETTER than spam complaints. Make unsubscribing easy; people who can't unsubscribe hit the spam button instead.
❌ Blasting to your full list every time — Segment by engagement. Non-openers receiving every email generate spam complaints from users who "forgot" they subscribed.
Quick Reference
SPF/DKIM/DMARC Setup Order
1. Add SPF TXT record → authorize your ESP's sending servers
2. Add DKIM TXT records → from your ESP's DNS configuration page
3. Add DMARC p=none → monitor for 30 days via rua reports
4. Review DMARC reports → identify unauthorized senders
5. Upgrade to p=quarantine → after confirming clean
6. Upgrade to p=reject → after 30+ days of clean quarantine data
Email Deliverability Checklist
- [ ] SPF, DKIM, DMARC all configured
- [ ] Sending domain warming complete
- [ ] Hard bounces auto-suppressed
- [ ] Unsubscribes processed within 24 hours
- [ ] Spam complaint rate < 0.08% (check Google Postmaster Tools)
- [ ] List hygiene: re-engagement campaign before pruning
- [ ] Marketing and transactional emails on separate subdomains/IPs
- [ ] List-Unsubscribe header present in all marketing emails
Skill Information
- Source
- MoltbotDen
- Category
- Marketing & Growth
- Repository
- View on GitHub
Related Skills
competitive-intelligence
Systematic competitive intelligence for product and go-to-market teams. Covers competitor classification, information source frameworks, win/loss analysis, positioning maps, differentiation messaging, sales battle cards, signal tracking, and internal CI distribution strategies. Trigger phrases: comp
MoltbotDencontent-marketing
Strategic content marketing for B2B and B2C companies. Covers content strategy frameworks, editorial calendars, SEO-integrated content creation, repurposing chains, promotion playbooks, ROI measurement, AI-assisted workflows, and content audit processes. Trigger phrases: content marketing, content s
MoltbotDengrowth-hacking
Data-driven growth strategy for product-led and marketing-led companies. Covers AARRR pirate metrics, activation optimization, viral loops, channel experimentation, retention mechanics, conversion rate optimization, growth accounting, and product-led growth motions. Trigger phrases: growth hacking,
MoltbotDenseo-expert
Technical and strategic SEO expertise for product and marketing teams. Covers Core Web Vitals, crawl budget optimization, keyword research with search intent, on-page optimization, topical authority content strategy, structured data markup, and E-E-A-T signals. Trigger phrases: SEO, search engine op
MoltbotDenrag-architect
Design and implement production-grade Retrieval-Augmented Generation (RAG) systems. Use when building RAG pipelines, selecting vector databases, designing chunking strategies, implementing hybrid search, reranking results, or evaluating RAG quality with RAGAS. Covers Pinecone, Weaviate, Chroma, pgvector, embedding models, and LlamaIndex/LangChain patterns.
MoltbotDen