Daniel López Azaña

Theme

Social Media

Blog

GNU/Linux, Open Source, Cloud Computing, DevOps and more...

Professional Email Marketing Setup: Subdomain Strategy for Maximum Deliverability

Email Marketing, DevOps ,Best Practices
Professional Email Architecture with Subdomain Isolation Strategy

Setting up a professional email system for mass mailings, newsletters, and transactional notifications requires careful architectural decisions. The wrong approach can damage your main domain’s reputation and cause legitimate emails from your employees to land in spam folders. After 20+ years managing email infrastructure for clients, I’ve learned that subdomain isolation is the golden standard for protecting deliverability while maintaining operational flexibility.

In this comprehensive guide, I’ll walk you through the professional email marketing architecture used by major companies, explaining why the common “no-reply” approach is outdated and how to implement a robust, scalable system using subdomains for marketing (mkt.example.com) and transactional emails (app.example.com).

Table of Contents

The Problem with no-reply@example.com

Many companies start with a seemingly logical approach: create a dedicated mailbox like no-reply@example.com for mass mailings, with a Reply-To header pointing back to the main inbox (hello@example.com). The idea is to prevent bounce messages from flooding the primary inbox while allowing users to reply naturally.

This approach has significant drawbacks in modern email systems:

1. Anti-Spam Filter Penalties

Modern spam filters (Gmail, Outlook, Yahoo) evaluate user engagement heavily. When you send from an address that explicitly signals “don’t interact with me,” you’re actively hurting your sender reputation. Email providers interpret no-reply as:

  • Automated, impersonal communication.
  • One-way marketing messages.
  • Potential spam or unwanted content.

This lowers your deliverability score across all email providers.

2. Negative User Psychology

The no-reply pattern creates an immediate psychological barrier:

  • Frustration: Users who want to respond feel ignored.
  • Distrust: “If they don’t want to hear from me, why should I trust them?”
  • Perception of low quality: Professional brands use human-addressable email addresses.

In a competitive market, small perception differences matter. Users are more likely to engage with emails from updates@yourcompany.com than no-reply@yourcompany.com.

3. Whitelisting Problems

When users add your sender to their contacts (to ensure emails don’t go to spam), adding no-reply@example.com provides no value for your other communications from sales@example.com or support@example.com. Each address builds reputation independently.

The Critical Danger of Using Your Main Domain

Here’s the critical issue that most companies overlook: sending mass mailings from your main domain (@example.com) puts your entire email infrastructure at risk.

How Domain Reputation Works

Email providers track sender reputation at the domain level, not just the specific email address. If you send newsletters from info@example.com and experience deliverability issues (spam complaints, high bounce rates, blacklist entries), the reputation damage affects:

  • hello@example.com (your main contact).
  • sales@example.com (your sales team).
  • support@example.com (your customer service).
  • invoices@example.com (your billing department).

Real-world consequence: Your sales team’s proposals start landing in spam. Your invoices don’t reach customers. Your support responses get blocked. All because marketing sent one problematic newsletter campaign.

The Point of No Return

Domain reputation damage can take months to repair, even after fixing the root cause. During this time:

  • Critical business communications fail silently.
  • Revenue-generating emails (quotes, invoices) don’t reach recipients.
  • Customer relationships suffer due to perceived non-responsiveness.
  • Your business operations are severely impacted.

This is why professional email architecture uses subdomain isolation.

The Professional Solution: Subdomain Isolation

The industry standard for professional email operations is a three-tier architecture that isolates different email traffic types:

example.com (Main Domain)
├── Corporate Email (Human-to-Human)
│   └── hello@example.com, sales@example.com, support@example.com

├── Marketing Email (Mass Mailings)
│   └── info@mkt.example.com
│   └── Reply-To: hello@example.com

└── Transactional Email (Application Notifications)
    └── notifications@app.example.com
    └── Reply-To: support@example.com

How Subdomain Isolation Protects You

Reputation Isolation: If your marketing subdomain (mkt.example.com) gets flagged for spam:

  • Your main domain (example.com) remains unaffected.
  • Employee emails continue delivering normally.
  • Transactional notifications (app.example.com) keep working.
  • Only the marketing traffic is impacted.

Recovery Speed: Fixing issues on a subdomain is faster:

  • You can rebuild reputation independently.
  • Alternatively, you can spin up a new subdomain (news2.example.com) while fixing the old one.
  • Main business operations continue uninterrupted.

Professional Perception: Modern recipients recognize subdomain patterns:

  • mkt.example.com = Marketing content (expected, not spam).
  • app.example.com = Important system notifications.
  • example.com = Direct human communication.

Understanding the Three-Tier Architecture

Let’s examine each tier in detail:

Tier 1: Corporate Email (Main Domain)

Domain: example.com
Purpose: Human-to-human communication
Examples: hello@example.com, john.doe@example.com, sales@example.com

Characteristics:

  • Low to medium volume.
  • Individual, personalized messages.
  • High value per message.
  • Managed through Google Workspace, Microsoft 365, or similar.

Configuration:

  • Standard MX records pointing to email provider.
  • SPF includes include:_spf.google.com or equivalent.
  • DKIM configured through email provider.
  • DMARC policy for main domain.

Tier 2: Marketing Email (Mass Mailings)

Subdomain: mkt.example.com (or news.example.com, updates.example.com)
Purpose: Newsletters, promotional campaigns, announcements
Sender: info@mkt.example.com or updates@news.example.com

Characteristics:

  • High volume (thousands to millions per campaign).
  • One-to-many communication.
  • Lower engagement rates (20-30% open rates typical).
  • Higher risk of spam complaints.

Critical Configuration:

  • From: info@mkt.example.com (friendly, not no-reply).
  • Reply-To: hello@example.com (or sales@example.com).
  • Managed via ESP: Mailchimp, Brevo, Mailgun, SendGrid.
  • Dedicated SPF/DKIM for subdomain.

Why This Works:

  • If users mark newsletters as spam, only mkt.example.com reputation suffers.
  • Replies still go to your monitored inbox.
  • Marketing reputation doesn’t affect business operations.

Tier 3: Transactional Email (Application Notifications)

Subdomain: app.example.com (or notifications.example.com, system.example.com)
Purpose: System-generated notifications, alerts, receipts
Examples: Password resets, order confirmations, subscription renewals

Characteristics:

  • Medium to high volume (depending on user base).
  • Critical, time-sensitive messages.
  • Very high open rates (80-95%).
  • Users expect and want these emails.
  • Low spam complaint rate.

Critical Configuration:

  • From: notifications@app.example.com or billing@app.example.com (descriptive).
  • Reply-To: support@example.com (monitored support address).
  • Managed via transactional ESP: Postmark, Amazon SES, SendGrid (API), Mailgun.
  • Separate SPF/DKIM for subdomain.

Why This Matters:

  • Critical notifications (password resets, payment confirmations) must deliver reliably.
  • If marketing causes reputation issues, transactional emails continue working.
  • Application uptime depends on email deliverability.

Marketing vs. Transactional Emails: Critical Differences

Understanding the fundamental difference between these email types is crucial for proper architecture:

CharacteristicMarketing EmailsTransactional Emails
PurposePromotion, engagement, brand awareness.System functionality, confirmations, alerts.
UrgencyLow (can be read later).High (users expect immediate delivery).
User ExpectationOptional, promotional content.Required, functional notifications.
Engagement RateLow (20-30% open rates).Very high (80-95% open rates).
Spam RiskHigher (users may mark as unwanted).Very low (users need these emails).
Volume PatternBurst campaigns (thousands at once).Continuous flow triggered by events.
Optimal Subdomainmkt., news., updates.app., notify., system.
Recommended ToolsMailchimp, Brevo, ActiveCampaign.Postmark, AWS SES, SendGrid API.
Reply-To StrategySales or marketing team.Support or customer service.

Why Separate Them?

Deliverability Protection: If you send a poorly-targeted marketing campaign that gets spam complaints, your password reset emails still work because they use a different subdomain.

Optimized Tooling: Marketing ESPs (Email Service Providers) optimize for:

  • Campaign management and scheduling.
  • A/B testing and segmentation.
  • Visual email builders.
  • Engagement analytics and heatmaps.

Transactional ESPs optimize for:

  • Speed and reliability (sub-second delivery).
  • API-driven sending (not campaign interfaces).
  • High deliverability rates (99.5%+).
  • Simple, text-based emails.

Cost Efficiency: Transactional email providers charge per email sent, while marketing providers charge per subscriber. Using the right tool for each type saves money.

Real-World Scenario

Without isolation:

  1. Marketing sends newsletter from info@example.com.
  2. Campaign has outdated email list with 20% bounce rate.
  3. Domain reputation drops.
  4. Customer password reset email from system@example.com goes to spam.
  5. Customer can’t access account and calls support frustrated.
  6. Lost business and damaged customer relationship.

With isolation:

  1. Marketing sends newsletter from info@mkt.example.com.
  2. Campaign has issues, subdomain reputation drops.
  3. Main domain example.com unaffected.
  4. Password reset from notifications@app.example.com delivers perfectly.
  5. Customer experience unaffected.
  6. Marketing fixes their list quality while business continues normally.

Implementation with Google Workspace

Many companies use Google Workspace for corporate email and wonder how to implement this subdomain architecture. The key insight: you don’t need to create users in Google Workspace for your subdomains.

The Hybrid Architecture

Google Workspace handles: Receiving replies at hello@example.com (your main inbox).

External ESP handles: Sending from info@mkt.example.com and notifications@app.example.com.

Why This Works

The info@mkt.example.com address doesn’t need to exist as a real mailbox because:

  1. Nobody will initiate conversations by emailing that address directly.
  2. When users click “Reply,” the Reply-To header redirects them to hello@example.com (which exists in Google Workspace).
  3. The external ESP (Mailchimp, SendGrid, etc.) only needs to send from that address, not receive.

Step-by-Step Implementation

Step 1: Choose Your ESP (Email Service Provider)

For Marketing (mkt.example.com):

  • Mailchimp: User-friendly, great for non-technical teams, generous free tier.
  • Brevo (formerly Sendinblue): Excellent deliverability, affordable pricing.
  • ActiveCampaign: Advanced automation and segmentation.
  • Mailgun: Developer-friendly, powerful API.

For Transactional (app.example.com):

  • Postmark: Specialized in transactional, best deliverability (99.99%).
  • Amazon SES: Extremely cheap ($0.10 per 1,000 emails), requires technical setup.
  • SendGrid: Good balance of features and price, strong API.
  • Mailgun: Reliable, developer-focused.

Step 2: Configure Your ESP

Sign up with your chosen provider and follow their domain verification process. They’ll provide DNS records for you to add.

Example for Mailchimp:

  1. In Mailchimp, go to “Verified Domains”.
  2. Add mkt.example.com.
  3. They’ll give you DNS records (SPF, DKIM).
  4. Copy these to your DNS provider.

Example for SendGrid (transactional):

  1. In SendGrid, go to “Sender Authentication”.
  2. Add app.example.com.
  3. Copy provided DNS records.
  4. Add to your DNS provider.

Step 3: Configure DNS Records

For each subdomain (mkt.example.com and app.example.com), you’ll add:

SPF (TXT record): Authorizes the ESP to send on behalf of your subdomain.

Type: TXT
Host: mkt.example.com
Value: v=spf1 include:servers.mcsv.net ~all

(The include: value depends on your ESP - Mailchimp uses servers.mcsv.net, SendGrid uses sendgrid.net).

DKIM (CNAME or TXT): Digital signature for email authentication.

Type: CNAME
Host: k1._domainkey.mkt.example.com
Value: dkim.mcsv.net

(Exact records provided by your ESP).

DMARC (TXT record): Policy for handling failed authentication.

Type: TXT
Host: _dmarc.mkt.example.com
Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

Important: You configure DNS per subdomain, not globally. The main domain (example.com) keeps its Google Workspace records, while subdomains get ESP-specific records.

Step 4: Configure Sending

In your marketing platform (e.g., Mailchimp):

  • From Name: “YourCompany Newsletter” or “YourCompany Updates”.
  • From Email: info@mkt.example.com.
  • Reply-To Email: hello@example.com (your Google Workspace inbox).

In your application code (e.g., SendGrid for transactional):

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const msg = {
  to: 'customer@example.com',
  from: 'notifications@app.example.com',  // Subdomain sender
  replyTo: 'support@example.com',         // Main domain reply
  subject: 'Your subscription renewal',
  html: '<strong>Your subscription has been renewed successfully.</strong>',
};

await sgMail.send(msg);

Optional: Domain Alias in Google Workspace

If you’re concerned about edge cases where someone manually types info@mkt.example.com to send you a new email (not a reply), you can make Google Workspace receive emails to that address:

  1. In Google Admin Console, go to DomainsManage Domains.
  2. Click Add a Domain Alias.
  3. Add mkt.example.com and app.example.com.
  4. Add Google’s MX records to those subdomains.

Result: Any email sent to [anything]@mkt.example.com will arrive at [anything]@example.com.

My Recommendation: Skip this initially. It complicates DNS (you’ll mix Google MX records with ESP SPF records). The Reply-To header handles 99.9% of cases. Add this only if you see actual user confusion.

Why NOT to Use Gmail API for Transactional Emails

A common question from developers: “Can I use the Gmail API with OAuth2 to send transactional emails from info@app.example.com?”

Short answer: No. This is the wrong tool for the job.

Why Gmail API Is the Wrong Choice

1. You Still Need a Google Workspace User

To use Gmail API to send from info@app.example.com:

  • You must create the subdomain as a secondary domain in Google Workspace.
  • You must create the user info@app.example.com as a paid user.
  • Cost: $6-12/month per user, even though it’s just automated sending.

2. Sending Limits

Google Workspace has strict sending limits:

  • Standard accounts: ~2,000 emails/day.
  • Google Workspace accounts: ~2,000-10,000 emails/day depending on plan.

If your application grows, you’ll hit these limits quickly. A successful product with 10,000 users could send 10,000+ transactional emails per day easily.

3. OAuth2 Token Management Complexity

Gmail API requires OAuth2 authentication:

  • Obtain access tokens.
  • Refresh tokens before expiration.
  • Handle token revocation.
  • Store tokens securely.

For server-side automation, this adds significant complexity compared to a simple API key.

4. No Subdomain Isolation Benefit

Using Gmail API forces you to add the subdomain to Google Workspace, which defeats the purpose of subdomain isolation. If you’re paying Google for the subdomain user anyway, you lose the reputation isolation benefit because it’s still tied to your Google Workspace infrastructure.

The Standard Solution: Transactional ESP with API

Professional applications use dedicated transactional email services with simple API integration:

Example with Postmark:

const postmark = require('postmark');
const client = new postmark.ServerClient(process.env.POSTMARK_API_KEY);

await client.sendEmail({
  From: 'notifications@app.example.com',
  To: 'customer@example.com',
  Subject: 'Your subscription renewal',
  HtmlBody: '<strong>Your subscription has been renewed.</strong>',
  ReplyTo: 'support@example.com',
  MessageStream: 'outbound',
});

Example with Amazon SES:

const AWS = require('aws-sdk');
const ses = new AWS.SES({ region: 'us-east-1' });

const params = {
  Source: 'notifications@app.example.com',
  Destination: { ToAddresses: ['customer@example.com'] },
  Message: {
    Subject: { Data: 'Your subscription renewal' },
    Body: { Html: { Data: '<strong>Renewed successfully.</strong>' } },
  },
  ReplyToAddresses: ['support@example.com'],
};

await ses.sendEmail(params).promise();

Benefits of Transactional ESPs

No OAuth complexity: Simple API key authentication.

No user licenses required: The app.example.com subdomain is verified via DNS, not created as a user.

Unlimited scaling: SendGrid, Postmark, and AWS SES handle millions of emails per day.

Built for deliverability: These services maintain excellent IP reputation and handle bounce/complaint processing automatically.

Cost-effective:

  • AWS SES: $0.10 per 1,000 emails.
  • SendGrid: Free tier includes 100 emails/day, paid plans start at $19.95/month for 50,000 emails.
  • Postmark: $10/month for 10,000 emails.

Compare this to Google Workspace at $6/user/month for limited sending capacity.

When to Use Gmail API

Gmail API is appropriate for:

  • Reading user inboxes (email client applications).
  • Sending personal emails on behalf of a specific user.
  • Building email management tools.

Gmail API is not appropriate for:

  • Automated system notifications.
  • Mass transactional emails.
  • Application-generated emails.

Complete Configuration Checklist

Use this checklist when setting up your email architecture:

Strategic Planning

  • Identify email types you’ll send:

    • Corporate (human-to-human).
    • Marketing (campaigns, newsletters).
    • Transactional (notifications, receipts).
  • Choose subdomains:

    • Marketing: mkt, news, updates, or marketing.
    • Transactional: app, notify, system, or transactional.
  • Select ESPs (Email Service Providers):

    • Marketing: Mailchimp, Brevo, ActiveCampaign, Mailgun.
    • Transactional: Postmark, Amazon SES, SendGrid, Mailgun.

DNS Configuration (Per Subdomain)

  • SPF Record (TXT):

    • Authorize ESP to send from subdomain.
    • Format: v=spf1 include:esp-spf-domain.com ~all.
    • Test with dig TXT mkt.example.com.
  • DKIM Record (CNAME or TXT):

    • Digital signature for authentication.
    • Provided by ESP during setup.
    • Test with dig TXT selector._domainkey.mkt.example.com.
  • DMARC Record (TXT):

    • Policy for authentication failures.
    • Format: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com.
    • Start with p=none for monitoring, move to p=quarantine or p=reject.
    • Test with dig TXT _dmarc.mkt.example.com.
  • Optional: MX Records (if using Google Workspace alias):

    • Only needed if you want to receive emails at subdomain addresses.
    • Adds complexity - generally not recommended initially.

ESP Configuration

  • Verify domain in ESP dashboard.
  • Add DNS records as instructed by ESP.
  • Wait for DNS propagation (can take 24-48 hours).
  • Confirm verification in ESP dashboard.
  • Send test emails to personal Gmail/Outlook accounts.
  • Check spam folders and deliverability.
  • Review authentication results (SPF, DKIM, DMARC pass).

Sender Configuration

  • Marketing emails:

    • From: info@mkt.example.com or similar friendly address.
    • Display Name: “YourCompany Newsletter” or “YourCompany Updates”.
    • Reply-To: hello@example.com or sales@example.com.
  • Transactional emails:

    • From: notifications@app.example.com or descriptive address.
    • Display Name: “YourCompany Notifications” or “YourCompany System”.
    • Reply-To: support@example.com.

Google Workspace Configuration

  • Main domain (example.com):

    • Keep existing MX, SPF, DKIM, DMARC records.
    • No changes needed for subdomain sending.
  • Optional domain alias (advanced):

    • Add mkt.example.com and app.example.com as domain aliases.
    • Add Google MX records to subdomains.
    • Only do this if you need to receive emails at subdomain addresses.

Testing and Monitoring

  • Send test campaigns:

    • Small test list (10-50 people).
    • Check deliverability to Gmail, Outlook, Yahoo.
    • Verify Reply-To functionality.
  • Monitor bounce rates:

    • Hard bounces: Remove invalid addresses.
    • Soft bounces: Retry or investigate.
    • Target: <2% bounce rate.
  • Track spam complaints:

    • Monitor complaint rates in ESP dashboard.
    • Target: <0.1% complaint rate.
    • Immediately unsubscribe complainers.
  • Check authentication reports:

    • DMARC reports sent to configured address.
    • Review for SPF/DKIM failures.
    • Fix any authentication issues.
  • Monitor sender reputation:

DNS Configuration Examples

Here are complete DNS configuration examples for a typical setup:

Main Domain (example.com) - Google Workspace

# MX Records (for receiving email)
Type: MX | Host: example.com | Priority: 1  | Value: aspmx.l.google.com
Type: MX | Host: example.com | Priority: 5  | Value: alt1.aspmx.l.google.com
Type: MX | Host: example.com | Priority: 5  | Value: alt2.aspmx.l.google.com
Type: MX | Host: example.com | Priority: 10 | Value: alt3.aspmx.l.google.com
Type: MX | Host: example.com | Priority: 10 | Value: alt4.aspmx.l.google.com

# SPF (authorizing Google to send)
Type: TXT | Host: example.com | Value: v=spf1 include:_spf.google.com ~all

# DKIM (provided by Google)
Type: TXT | Host: google._domainkey.example.com | Value: v=DKIM1; k=rsa; p=MIGfMA0...

# DMARC (email authentication policy)
Type: TXT | Host: _dmarc.example.com | Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

Marketing Subdomain (mkt.example.com) - Mailchimp

# SPF (authorizing Mailchimp)
Type: TXT | Host: mkt.example.com | Value: v=spf1 include:servers.mcsv.net ~all

# DKIM (provided by Mailchimp)
Type: CNAME | Host: k1._domainkey.mkt | Value: dkim.mcsv.net
Type: CNAME | Host: k2._domainkey.mkt | Value: dkim2.mcsv.net

# DMARC (subdomain-specific policy)
Type: TXT | Host: _dmarc.mkt.example.com | Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

Transactional Subdomain (app.example.com) - SendGrid

# SPF (authorizing SendGrid)
Type: TXT | Host: app.example.com | Value: v=spf1 include:sendgrid.net ~all

# DKIM (provided by SendGrid)
Type: CNAME | Host: s1._domainkey.app | Value: s1.domainkey.u12345.wl.sendgrid.net
Type: CNAME | Host: s2._domainkey.app | Value: s2.domainkey.u12345.wl.sendgrid.net

# DMARC (subdomain-specific policy)
Type: TXT | Host: _dmarc.app.example.com | Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

Verification Commands

After adding DNS records, verify them:

# Check SPF
dig TXT mkt.example.com
dig TXT app.example.com

# Check DKIM
dig TXT k1._domainkey.mkt.example.com
dig TXT s1._domainkey.app.example.com

# Check DMARC
dig TXT _dmarc.mkt.example.com
dig TXT _dmarc.app.example.com

# Check MX (if using Google Workspace alias)
dig MX mkt.example.com

Advanced Technical Considerations

While subdomain reputation isolation is the industry standard and works in 95%+ of scenarios, there are three technical edge cases worth understanding:

1. Brand New Domains Without Reputation History

If example.com is a newly registered domain with zero sending history:

  • Both the root domain and subdomains start with no reputation (not bad reputation, but absence of reputation).
  • All domains/subdomains will need independent warm-up processes.
  • This is not inheritance of penalties, but rather all entities starting from scratch.

Impact: Minimal. ESP providers like SendGrid and AWS SES have built-in warm-up schedules. This is a normal situation, not a vulnerability of the subdomain strategy.

2. Shared IP Address Pools

If you use the same sending IP addresses for:

  • example.com
  • mkt.example.com
  • app.example.com

A penalty on the IP address (not the domain) will affect all sending from that IP, regardless of which domain/subdomain is used.

Key distinction: This is IP reputation, not domain reputation. They are tracked separately by ISPs.

Solution: Professional ESPs automatically handle this:

  • SendGrid: Dedicated IP pools per subdomain available.
  • AWS SES: Dedicated IPs or shared pools with good reputation management.
  • Mailchimp/Mailgun: Automatic IP pool segmentation.

Most businesses use ESP-managed shared IPs with good reputation, where the ESP ensures your IP pool isn’t shared with spammers.

3. DMARC Organizational Domain Alignment

DMARC has a concept of “organizational domain” that can group subdomains under certain circumstances for authentication policy enforcement.

Important clarifications:

  • This affects authentication policy (what to do with emails that fail DKIM/SPF verification).
  • This does NOT affect sender reputation scoring itself.
  • Reputation scoring is still done independently per subdomain by Gmail, Microsoft 365, Yahoo, etc.

Example: If your DMARC policy at example.com is p=reject, subdomains might inherit that policy unless they have their own DMARC record. But this is about authentication rules, not reputation tracking.

Solution: Configure explicit DMARC policies for each subdomain as shown in the DNS examples above.

Real-World Confirmation

The subdomain isolation strategy is recommended and documented by:

  • Adobe Experience League (Adobe Campaign official documentation)
  • SendGrid, Mailchimp, AWS SES (leading ESP providers)
  • ActiveCampaign, Klaviyo (marketing automation platforms)
  • Email deliverability consultants (Return Path, Validity)

These are not theoretical recommendations—this is how major corporations (Amazon, Google, Microsoft) structure their email infrastructure.

Bottom line: If you follow the configuration steps in this guide and use a reputable ESP, subdomain reputation isolation works as designed. The edge cases above are either non-issues with proper ESP selection or apply to specialized configurations that businesses would handle with their technical teams.

Conclusion and Next Steps

Professional email architecture isn’t just about best practices—it’s about protecting your business reputation and ensuring critical communications reach their destination. By implementing subdomain isolation:

You gain:

  • Independent reputation for marketing, transactional, and corporate email.
  • Freedom to experiment with marketing campaigns without risking core operations.
  • Faster recovery from deliverability issues.
  • Better long-term scalability as your email volume grows.

You avoid:

  • Catastrophic reputation damage to your main domain.
  • Sales emails landing in spam because marketing had a bad campaign.
  • Customers not receiving password resets or invoices.
  • Months of reputation repair work.

Implementation Roadmap

Week 1: Planning

  • Document all email types your business sends.
  • Choose subdomain names (mkt.example.com, app.example.com).
  • Select ESPs for marketing and transactional email.
  • Create accounts and review pricing.

Week 2: DNS Configuration

  • Add DNS records for each subdomain (SPF, DKIM, DMARC).
  • Wait for DNS propagation (24-48 hours).
  • Verify records using dig commands or online tools.

Week 3: ESP Setup and Testing

  • Complete domain verification in each ESP.
  • Configure sender addresses and Reply-To headers.
  • Send test emails to personal accounts.
  • Verify authentication passes (check email headers).

Week 4: Migration and Monitoring

  • Migrate marketing campaigns to subdomain sender.
  • Update application code to use transactional ESP.
  • Monitor deliverability and bounce rates closely.
  • Adjust DMARC policy from none to quarantine after 2 weeks of monitoring.

Ongoing: Optimization

  • Review DMARC reports monthly.
  • Monitor sender reputation with Google Postmaster Tools.
  • Clean email lists regularly (remove bounces and non-engagers).
  • Keep SPF/DKIM records updated if changing ESPs.

Getting Help

If you’re implementing this architecture and need assistance with:

  • DNS configuration and troubleshooting.
  • ESP selection and integration.
  • Email deliverability optimization.
  • Application code for transactional email.
  • AWS SES setup and configuration.

Feel free to contact me for consulting. With 20+ years of experience managing email infrastructure for clients ranging from startups to enterprises, I can help you implement this correctly the first time and avoid costly mistakes.

Further Reading


Have questions about email deliverability or infrastructure? Leave a comment below or reach out directly. I’m always happy to discuss email architecture and help solve delivery challenges.

Email Marketing Subdomain Strategy Google Workspace AWS SES SendGrid SMTP SPF DKIM DMARC Deliverability
Daniel López Azaña

About the author

Daniel López Azaña

Tech entrepreneur and cloud architect with over 20 years of experience transforming infrastructures and automating processes.

Specialist in AI/LLM integration, Rust and Python development, and AWS & GCP architecture. Restless mind, idea generator, and passionate about technological innovation and AI.

Related articles

terraform-and-route53-logos

How to quickly import all records from a Route53 DNS zone into Terraform

The terraform import command allows you to import into HashiCorp Terraform resources that already existed previously in the provider we are working with, in this case AWS. However, it only allows you to import those records one by one, with one run of terraform import at a time. This, apart from being extremely tedious, in some situations becomes impractical. This is the case for the records of a Route53 DNS zone. The task can become unmanageable if we have multiple DNS zones, each one with tens or hundreds of records. In this article I offer you a bash script that will allow you to import in Terraform all the records of a Route53 DNS zone in a matter of seconds or a few minutes.

February 8, 2022
Script to automatically change all gp2 volumes to gp3 with aws-cli

Script to automatically change all gp2 volumes to gp3 with aws-cli

Last December Amazon announced its new EBS gp3 volumes, which offer better performance and a cost saving of 20% compared to those that have been used until now (gp2). Well, after successfully testing these new volumes with multiple clients, I can do nothing but recommend their use, because they are all advantages and in these 2 and a half months that have passed since the announcement I have not noticed any problems or side effects.

February 16, 2021
AWS security groups

How to automatically update all your AWS EC2 security groups when your dynamic IP changes

One of the biggest annoyances when working with AWS and your Internet connection has a dynamic IP is that when it changes, you immediately stop accessing to all servers and services protected by an EC2 security group whose rules only allow traffic to certain specific IP’s instead of allowing open connections to everyone (0.0.0.0.0/0).Certainly the simplest thing to do is always allowing traffic on a given port to everyone, so that even if you have a dynamic IP on your Internet connection you will always be able to continue accessing even if it changes. But opening traffic on a port to everyone is not the right way to proceed from a security point of view, because then any attacker will be able to access that port without restrictions, and that is not what you want.

January 12, 2021

Comments

Be the first to comment

Submit comment