If your emails aren’t landing where they should, you’re not alone. Anyone sending mail through Mailgun — whether it’s for a SaaS, a newsletter, or just transactional stuff — will eventually hit snags with delivery. This guide is for folks who want straight answers: how to actually monitor what’s happening, spot issues, and fix them without digging through a dozen vague “best practices.” No fluff. Just how to get your emails where they’re going.
1. Know What to Monitor (and What Matters)
Before you start troubleshooting, you need a handle on what “email delivery” actually means. There’s a difference between:
- Delivery (Mailgun accepted the email and tried to hand it off to the recipient’s mail server)
- Deliverability (The email landed in the inbox, not spam, not lost in the ether)
Mailgun can only guarantee delivery to the recipient’s server. What happens after that — spam, promotions, or just vanishing — is up to the recipient’s setup. So, focus first on what you can control and measure.
The Metrics That Matter
Don’t waste time chasing vanity stats. These are the basics:
- Delivered: The message was accepted by the recipient’s server.
- Bounced: The server rejected your message (hard or soft bounce).
- Dropped: Mailgun refused to even try to deliver (usually due to policy, suppression list, etc.).
- Complaints: Recipients marked your email as spam.
If you’re seeing weird open rates, but your “Delivered” numbers are solid, it’s probably a content or reputation issue — not a Mailgun technical failure.
2. Set Up Mailgun’s Built-in Monitoring
Before you go hunting for problems, get your baseline monitoring in place. Mailgun gives you dashboards, logs, and webhooks. Use them.
Check the Dashboard
- Log in to your Mailgun account.
- Go to the “Logs” tab. Here you’ll see every send, delivered, failed, and dropped event.
- Filter by date, recipient, or message ID to drill down.
Pro tip: The UI is fine for a quick check, but don’t rely on it for anything more than spot-checking.
Use Event Webhooks
If you actually care about deliverability at scale, set up webhooks for key events:
- Delivered
- Failed
- Bounced
- Complaints
- Unsubscribes
You can set these up under Sending > Webhooks in your domain settings. Point them to a URL your system controls, log and alert on them however you like.
Why bother? Webhooks let you automate responses: flagging users who bounce, suppressing bad addresses, or alerting your team before customers complain.
Enable Suppression List Notifications
Mailgun keeps track of addresses that repeatedly bounce or complain. Make sure you’re notified when messages are dropped due to suppression — it’s a sign you need to clean up your lists.
3. Troubleshooting: Step-by-Step
Once you’re monitoring the right stuff, here’s how to actually debug issues as they crop up.
Step 1: Verify Sending Domain Setup
If you just set up your domain or suddenly see all your messages getting dropped, start here:
- Check DNS Records: Go to Mailgun > Domains > Select your domain. Are all green checks set for SPF, DKIM, and MX records?
- SPF/DKIM failures are the #1 cause of getting flagged as spam or dropped by strict recipients (like Gmail or corporate mail).
- Use tools like MXToolbox or mail-tester.com to double-check.
Honest take: If your DNS is wrong, nothing else matters until you fix it. Don’t waste time elsewhere.
Step 2: Look Up Specific Message Events
If you have a message that never arrived:
- Find the message ID (from your app logs, or Mailgun’s logs).
- Search for it in Mailgun’s Logs tab, or use their Events API.
- Check what happened: Was it delivered, dropped, bounced? What was the error message?
Common error messages will tell you what’s up. Examples:
550 5.1.1 User unknown
— The recipient’s address doesn’t exist.550 5.7.1 Message rejected as spam
— You’re hitting a spam filter.550 5.4.1 Relay Access Denied
— Your domain isn’t set up right, or you’re sending from the wrong IP.
Don’t guess. Always check the exact error.
Step 3: Diagnose Bounces and Drops
Mailgun breaks down bounces into “hard” (permanent failure) and “soft” (temporary, like a full mailbox).
- Hard bounces: Remove these addresses from your list. Don’t keep retrying — you’ll just hurt your sender reputation.
- Soft bounces: Retry a few times, but don’t hammer the server.
- Drops: Usually means the recipient is on your suppression list, or you’re trying to send to a known bad address.
What not to do: Don’t keep sending to addresses that bounced. That’s a fast track to being blacklisted.
Step 4: Watch for Spam Complaints
If you get a spike in complaints, something’s wrong:
- Your content looks spammy.
- You’re emailing people who didn’t ask for it.
- Your unsubscribe is hard to find.
Mailgun will suppress these addresses automatically, but you need to fix the root cause or your domain/IP will get a bad reputation fast.
Step 5: Test Deliverability (Inbox vs. Spam)
Even if Mailgun says “delivered,” you still might land in spam. Here’s how to test:
- Send test emails to Gmail, Outlook, Yahoo, and a corporate address if possible.
- Check all folders: Inbox, spam, promotions.
- Use mail-tester.com — it’ll grade your message and show common issues (missing headers, bad links, etc.).
What works: Plain text emails with real content and working unsubscribe links almost always do better.
What doesn’t: “Free money!!!” subject lines, tons of images, or sketchy links.
4. Common Pitfalls to Ignore
There’s a lot of advice out there that sounds good but wastes your time.
- Don’t obsess over open rates. Open tracking is unreliable (Apple Mail Privacy, etc.). Focus on delivery and bounce/complaint rates.
- Don’t keep retrying failed addresses. Once an address hard bounces, let it go.
- Don’t expect perfection. Some emails will always bounce, or get caught as spam — that’s just how email works.
5. Pro Tips for Staying Out of Trouble
- Warm up new domains and IPs: If you start sending thousands of emails out of nowhere, you’ll look suspicious to spam filters.
- Clean your lists regularly: Periodically remove inactive or bouncing addresses.
- Authenticate everything: SPF, DKIM, and ideally DMARC. If you don’t know what these are, learn — it’s worth the 30 minutes.
- Monitor blacklists: Use MXToolbox or similar to make sure you’re not showing up on public blacklists.
- Don’t buy lists. Seriously, it’s not worth the headache.
6. When to Contact Mailgun Support
If you’ve checked your logs, your DNS, and your content, and you’re still seeing issues you can’t explain, it’s time to reach out. But:
- Come armed with message IDs, error messages, and a clear description of what you’ve already tried.
- Don’t expect miracles — if your domain reputation is shot or your lists are junk, Mailgun support can’t fix that.
Keep It Simple and Iterate
Email delivery isn’t magic, but it’s not always straightforward. Set up monitoring, pay attention to the signals that matter, and clean up issues as soon as they show up. Don’t chase every minor metric — just watch your delivery, bounces, and complaints, fix what’s broken, and keep moving. It’s an ongoing process, but it doesn’t have to be painful.