Appearance
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
| Domain | Purpose | Status |
|---|---|---|
mailgun.ixdf.org | Primary sending domain (new) | Active, warming up |
mailgun.interaction-design.org | Legacy sending domain | Active, being phased out |
Dedicated IP Addresses
We have dedicated IPs (not shared with other Mailgun customers), by the state of the 2026-01-07:
| IP | Sender Score | Assigned To | Hostname |
|---|---|---|---|
| 159.135.234.3 | 97 (Good) | mailgun.ixdf.org | m234-3.mailgun.net |
| 69.72.41.123 | 90 (Good) | mailgun.interaction-design.org | m41-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
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 Type | Purpose | Example |
|---|---|---|
| SPF (TXT) | Authorizes Mailgun to send | v=spf1 include:mailgun.org ~all |
| DKIM (TXT) | Cryptographic signature | krs._domainkey.mailgun.ixdf.org |
| MX | Receiving mail (for bounces) | mxa.mailgun.org, mxb.mailgun.org |
| CNAME | Tracking links | email.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.orgManaging IP Pools (Dashboard)
- Go to Sending → IP Pools
- Create pool or edit existing
- Assign IPs to pool
- 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/
- 159.135.234.3 (mailgun.ixdf.org)
- 69.72.41.123 (mailgun.interaction-design.org)
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:
| Metric | Healthy Target | Action if Exceeded |
|---|---|---|
| Delivery rate | >95% | Check bounce reasons |
| Bounce rate | <2% | Clean email list |
| Complaint rate | <0.1% | Review email content/frequency |
| Open rate | Baseline dependent | Compare to historical |
Postmaster Tools (ESP-specific)
We're registered with major providers:
| Provider | URL | What it Shows |
|---|---|---|
| Google Postmaster | https://postmaster.google.com/ | Gmail reputation, spam rate |
| Yahoo Sender Hub | https://postmaster.yahooinc.com/ | Yahoo/AOL delivery metrics |
| Microsoft SNDS | https://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:
- Check Sender Score for the IP
- Look up IP on https://mxtoolbox.com/blacklists.aspx
Solution:
- If shared IP → Contact Mailgun support to move to different pool
- 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
| Trigger | Threshold |
|---|---|
| Volume | >40,000-50,000 emails/day |
| Rate limiting | Persistent throttling that doesn't resolve |
| Campaign spikes | Before campaigns that 3x+ normal volume |
Current volume: ~9,000 emails/day combined → 1 IP per domain is sufficient