Skip to content

Mailgun Configuration

Mailgun is our email delivery service provider. This document covers the infrastructure configuration, not the application code (see email-domain-migration.md for that).

Our Setup

Domains

DomainPurposeStatus
mailgun.ixdf.orgPrimary sending domain (new)Active, warming up
mailgun.interaction-design.orgLegacy sending domainActive, being phased out

Dedicated IP Addresses

We have dedicated IPs (not shared with other Mailgun customers), by the state of the 2026-01-07:

IPSender ScoreAssigned ToHostname
159.135.234.397 (Good)mailgun.ixdf.orgm234-3.mailgun.net
69.72.41.12390 (Good)mailgun.interaction-design.orgm41-123.mailgun.net

Why dedicated IPs matter: Shared IPs are used by hundreds of other senders. If they send spam, your deliverability suffers. Dedicated IPs give you full control over your sender reputation.

Mailgun Dashboard

URL: https://app.mailgun.com/

Key sections:

  • Sending → Domains — Domain configuration, DNS records, tracking settings
  • Sending → IP Pools — IP address management
  • Sending → Logs — Real-time email event logs
  • Sending → Analytics — Delivery statistics, bounce rates

DNS Configuration

Each Mailgun domain requires these DNS records:

Record TypePurposeExample
SPF (TXT)Authorizes Mailgun to sendv=spf1 include:mailgun.org ~all
DKIM (TXT)Cryptographic signaturekrs._domainkey.mailgun.ixdf.org
MXReceiving mail (for bounces)mxa.mailgun.org, mxb.mailgun.org
CNAMETracking linksemail.mailgun.ixdf.org → mailgun.org

Verify DNS in Mailgun dashboard: Sending → Domains → [domain] → DNS Records

IP Pools

IP pools let you assign specific IPs to specific domains. This isolates reputation between domains.

Current Configuration

text
Pool: ixdf-org-pool
├── IP: 159.135.234.3
└── Domain: mailgun.ixdf.org

Pool: interaction-design-org-pool
├── IP: 69.72.41.123
└── Domain: mailgun.interaction-design.org

Managing IP Pools (Dashboard)

  1. Go to Sending → IP Pools
  2. Create pool or edit existing
  3. Assign IPs to pool
  4. Link pool to domain in Sending → Domains → [domain] → Domain Settings → IP Pool

Monitoring Reputation

Sender Score (External)

URL: https://senderscore.org/assess/get-your-score/

Check your IP reputation (0-100 scale):

  • 90-100: Excellent
  • 80-89: Good
  • 70-79: Fair
  • <70: Poor (deliverability issues likely)

Check monthly or after deliverability issues.

Mailgun Analytics (Internal)

Sending → Analytics → [domain]

Key metrics to monitor:

MetricHealthy TargetAction if Exceeded
Delivery rate>95%Check bounce reasons
Bounce rate<2%Clean email list
Complaint rate<0.1%Review email content/frequency
Open rateBaseline dependentCompare to historical

Postmaster Tools (ESP-specific)

We're registered with major providers:

ProviderURLWhat it Shows
Google Postmasterhttps://postmaster.google.com/Gmail reputation, spam rate
Yahoo Sender Hubhttps://postmaster.yahooinc.com/Yahoo/AOL delivery metrics
Microsoft SNDShttps://sendersupport.olc.protection.outlook.com/snds/Outlook/Hotmail IP status

Common Issues

Rate Limiting (Temporary Failures)

Symptom: Emails delayed, logs show "ratelimit" or "throttled"

Cause: Receiving server (Gmail, Yahoo, etc.) is limiting how fast we can send

Solution: No action needed — Mailgun auto-retries for up to 8 hours

Blacklisted IP

Symptom: Permanent failures with "blacklisted" or "DNSBL" in error message

Diagnosis:

  1. Check Sender Score for the IP
  2. Look up IP on https://mxtoolbox.com/blacklists.aspx

Solution:

  1. If shared IP → Contact Mailgun support to move to different pool
  2. If dedicated IP → Submit delisting request to the specific blacklist

DMARC Failures

Symptom: Bounces with "DMARC policy" or "unauthenticated email"

Cause: From address domain doesn't match sending domain's DKIM signature

Solution: Ensure From address uses same domain as the Mailgun sending domain (see email-domain-migration.md)

Capacity Planning

Single IP Capacity

One dedicated IP can handle 50,000+ emails/day comfortably.

When to Add Another IP

TriggerThreshold
Volume>40,000-50,000 emails/day
Rate limitingPersistent throttling that doesn't resolve
Campaign spikesBefore campaigns that 3x+ normal volume

Current volume: ~9,000 emails/day combined → 1 IP per domain is sufficient