Email delivery failures are frustrating, but they always include diagnostic information that points to the cause. This guide provides a systematic approach to diagnosing and fixing delivery problems.
Step 1: Read the Bounce Message
Every delivery failure generates a bounce message containing an SMTP error code and explanation. This is your starting point.
Permanent Failures (5xx Codes)
- 550: User not found, blocked, or rejected
- 551: User not local
- 552: Message too large
- 553: Invalid mailbox name
- 554: Transaction failed
Temporary Failures (4xx Codes)
- 421: Service temporarily unavailable
- 450: Mailbox temporarily unavailable
- 451: Server error
- 452: Insufficient storage
Step 2: Check Authentication
Authentication failures are a leading cause of rejected email. Verify all three protocols:
Verify SPF
- Send a test email to yourself
- View the email headers
- Look for "spf=pass" in Authentication-Results
- If failing, check your SPF record includes all sending IPs
Verify DKIM
- Check headers for "dkim=pass"
- Verify your DKIM public key is published in DNS
- Ensure the signing domain matches your From domain
Verify DMARC
- Check headers for "dmarc=pass"
- Confirm either SPF or DKIM aligns with your From domain
- Review DMARC reports for failure patterns
Quick Authentication Test
Send a test email to a Gmail account. Open the email, click the three dots menu, and select "Show original." Search for "Authentication-Results" to see SPF, DKIM, and DMARC status.
Step 3: Check Blocklist Status
Blocklist presence causes widespread delivery failures:
- Use MXToolbox to check your sending IP against major blocklists
- Check your domain as well as IP
- If listed, follow the blocklist's delisting process
- Address the root cause before requesting removal
Major Blocklists to Check
- Spamhaus (SBL, XBL, PBL)
- Barracuda
- SpamCop
- SORBS
- UCEProtect
Step 4: Review Sender Reputation
Poor reputation causes filtering even when authentication passes:
Google Postmaster Tools
- Check domain reputation (High, Medium, Low, Bad)
- Review spam rate (should be under 0.1%)
- Monitor authentication success rates
Microsoft SNDS
- Register your sending IPs
- Monitor spam trap hits
- Review complaint feedback
Sender Score
- Check score for your IP (aim for 80+)
- Review factors affecting your score
Step 5: Clean Your Email List
Bad addresses cause bounces that damage reputation:
- Remove all hard bounced addresses immediately
- Remove addresses with multiple soft bounces
- Remove addresses that have not engaged in 6+ months
- Use email verification services for large lists
Fixing Specific Problems
If Authentication Is Failing
- Review and correct your SPF record
- Regenerate and republish DKIM keys
- Ensure DMARC alignment (relaxed is usually sufficient)
If Blocklisted
- Identify and fix the cause (spam complaints, spam traps)
- Clean your email list
- Submit delisting requests
- Resume sending gradually
If Reputation Is Low
- Reduce sending volume temporarily
- Focus on engaged subscribers only
- Improve email relevance
- Monitor metrics and increase volume gradually
If Being Throttled
- Reduce sending rate to that provider
- Spread sends over longer time periods
- Warm up new IPs properly
When to Escalate
Contact the receiving provider's postmaster support when:
- You have fixed all identifiable issues
- Problems persist after 2-4 weeks of good behavior
- Bounce messages provide no actionable information
- You can demonstrate compliance with their requirements
