What You'll Learn
1. Why WordPress Emails Fail to Deliver
If you're reading this, you've probably experienced the frustration of WordPress emails not reaching their destination. Maybe your WooCommerce order confirmations are going to spam, password reset emails never arrive, or contact form submissions disappear into the void.
Emails getting lost or going to spam
Here's the uncomfortable truth: By default, WordPress uses PHP's mail() function to send emails. This method was designed decades ago for simple server-to-server communication, not for modern email deliverability requirements.
The PHP mail() Problem
When WordPress uses PHP mail(), your emails are sent directly from your web server. This creates several critical issues:
- No Authentication: Emails lack SPF, DKIM, and DMARC authentication that modern email providers require
- Shared IP Reputation: Your web server's IP address likely has poor email reputation (shared hosting means shared reputation)
- No Feedback Loop: When emails fail, you get no notification or error message
- Spam Filter Triggers: Email providers increasingly flag unauthenticated emails as spam or reject them entirely
- Inconsistent Delivery: Some hosts disable PHP mail() entirely for security reasons
The 2024 Reality Check
Gmail and Yahoo implemented strict new email authentication requirements in February 2024. Emails without proper SPF and DKIM authentication are now more likely than ever to be rejected or sent to spam. Using PHP mail() is no longer viable for any site that depends on email communication.
Common Symptoms of Email Delivery Issues
How do you know if your WordPress site has email delivery problems? Look for these warning signs:
- Customers say they didn't receive order confirmations (check their spam folder first)
- Password reset emails never arrive
- Contact form submissions seem to disappear
- User registration emails aren't being received
- Scheduled notifications and digests don't send
- Your test emails work, but customer emails fail (different spam filter behavior)
2. Understanding SMTP and Why You Need It
SMTP (Simple Mail Transfer Protocol) is the standard protocol for sending emails across the internet. When you use an SMTP service instead of PHP mail(), you're routing your emails through servers specifically designed and optimized for email delivery.
SMTP - Your dedicated email delivery service
How SMTP Changes the Game
Think of it like this: sending email with PHP mail() is like handing a letter to a random stranger and hoping they deliver it. Using SMTP is like using FedEx - a dedicated delivery service with tracking, confirmation, and accountability.
PHP mail() vs. SMTP Comparison
PHP mail()
- • No authentication
- • Poor IP reputation
- • No delivery tracking
- • Silent failures
- • No retry mechanism
- • May be disabled by host
SMTP Service
- • Full authentication (SPF, DKIM)
- • Dedicated sending IPs
- • Complete delivery logs
- • Error notifications
- • Automatic retry on failure
- • Works everywhere
Types of SMTP Integration
There are several ways to connect WordPress to an SMTP service:
- Traditional SMTP: Connect using host, port, username, and password. Works with any email service but typically slower and more prone to timeout issues.
- API-based sending: Direct integration with the provider's API. Faster, more reliable, and includes better error handling. Most modern providers support this.
- OAuth 2.0: Secure token-based authentication used by Gmail and Microsoft 365. No passwords stored, tokens refresh automatically.
Our Recommendation
Whenever possible, use API-based integration. It's faster, more reliable, and provides better error handling than traditional SMTP. Most quality WordPress SMTP plugins (including Authority Mailer SMTP) support API connections for major providers.
3. Email Authentication: SPF, DKIM, and DMARC
Email authentication is the foundation of good deliverability. These three protocols work together to prove that emails claiming to be from your domain are actually authorized to send on your behalf.
Email authentication protects your sender reputation
SPF (Sender Policy Framework)
SPF is a DNS record that lists which servers are allowed to send email for your domain. When a receiving server gets an email from "yoursite.com", it checks the SPF record to verify the sending server is authorized.
# Example SPF record for SendGrid
v=spf1 include:sendgrid.net ~all
DKIM (DomainKeys Identified Mail)
DKIM adds a digital signature to your emails that proves they haven't been tampered with in transit. The receiving server uses a public key in your DNS to verify the signature.
Setting up DKIM typically involves adding one or more TXT records to your DNS that your email provider gives you. Each provider has different key formats, but the concept is the same.
DMARC (Domain-based Message Authentication)
DMARC ties SPF and DKIM together and tells receiving servers what to do when authentication fails. It also provides reporting so you can monitor your email authentication status.
# Basic DMARC record
v=DMARC1; p=quarantine; rua=mailto:dmarc@yoursite.com
Authentication Checklist
- SPF record includes your email provider
- DKIM keys added to DNS
- DMARC policy set (start with "none" then move to "quarantine")
- All records verified using online tools
- Test emails passing authentication checks
4. Choosing the Right Email Provider
With dozens of email providers available, choosing the right one can feel overwhelming. Here's our framework for making the decision:
Factors to Consider
- Volume and Cost: How many emails do you send monthly? Free tiers range from 100/day (SendGrid) to 6,000/month (Mailjet). Calculate your needs before committing.
- Deliverability Reputation: Established providers like SendGrid, Postmark, and Mailgun have built strong reputations and relationships with major email providers.
- Integration Ease: Does your WordPress SMTP plugin support the provider? API integration is preferred over basic SMTP when available.
- Features: Do you need analytics, templates, webhooks, or dedicated IPs? Match features to your requirements.
- Support: What level of support do you need? Some providers offer excellent documentation, others provide hands-on support.
Provider Recommendations by Use Case
Small Sites / Personal Blogs
SendGrid (100/day free), Gmail (500/day), or Brevo (300/day free)
E-commerce / WooCommerce
SendGrid, Mailgun, or Postmark for fast, reliable transactional emails
High Volume / Enterprise
Amazon SES ($0.10/1000), SparkPost, or SendGrid with dedicated IP
European / GDPR Compliance
Brevo, Mailjet, or Mailgun EU region for data residency requirements
5. Step-by-Step Setup Guide
Here's the general process for setting up proper email delivery on WordPress. The specific steps vary by provider, but the overall workflow is the same.
Choose and Sign Up with a Provider
Create an account with your chosen email provider. Most offer free tiers or trials.
Verify Your Domain
Add the SPF and DKIM records your provider gives you to your domain's DNS.
Get Your API Key or Credentials
Generate an API key or note your SMTP credentials from the provider's dashboard.
Install and Configure Your SMTP Plugin
Install a WordPress SMTP plugin, select your provider, and enter your credentials.
Send a Test Email
Use the plugin's test email feature to verify everything is working correctly.
Monitor and Verify
Check email logs and use tools like mail-tester.com to verify authentication.
6. Monitoring and Maintaining Deliverability
Setting up SMTP is just the beginning. To maintain high deliverability, you need ongoing monitoring and maintenance.
Key Metrics to Track
- Delivery Rate: Percentage of emails successfully delivered (aim for 99%+)
- Bounce Rate: Hard and soft bounces (keep under 2%)
- Spam Complaints: Users marking your emails as spam (keep under 0.1%)
- Open Rate: If tracking, indicates inbox placement (varies by email type)
Tools for Monitoring
- Email Provider Dashboard: Most providers show delivery stats, bounces, and complaints
- WordPress Plugin Logs: View every email sent from your site with status
- Mail-tester.com: Send a test email to check your spam score
- MXToolbox: Verify your DNS records are correctly configured
- Google Postmaster Tools: If sending to Gmail, see reputation and delivery data
7. Troubleshooting Common Issues
Emails still going to spam
Check: Is domain authentication (SPF, DKIM) properly set up? Use mail-tester.com to diagnose.
Fix: Add or correct your DNS records. Wait for propagation (up to 48 hours).
Test email fails with authentication error
Check: Are your API key or SMTP credentials correct? Did you enable the right permissions?
Fix: Generate a new API key with correct permissions. Double-check for copy/paste errors.
Connection timeout errors
Check: Is your web host blocking outbound SMTP connections on the required port?
Fix: Use API integration instead of SMTP, or contact your host to unblock the port.
Emails working for some recipients but not others
Check: Are specific domains (like corporate email) blocking you? Check bounce messages.
Fix: Ensure full authentication, consider a dedicated IP for higher reputation.
8. Email Deliverability Best Practices
Best Practices
- Use a reputable SMTP service with proper authentication
- Set up SPF, DKIM, and DMARC for your sending domain
- Use a consistent "From" name and email address
- Monitor your email logs regularly for delivery issues
- Keep your email list clean (remove bounces promptly)
- Use clear, relevant subject lines that match your content
- Include a plain text version of HTML emails
- Make it easy for recipients to contact you if needed
Common Mistakes to Avoid
- Don't use PHP mail() for any production emails
- Don't send from a free email address (@gmail.com, @yahoo.com)
- Don't send emails to purchased or scraped lists
- Don't use misleading subject lines or sender names
- Don't ignore bounce messages - they indicate problems
- Don't send too many emails too quickly (respect rate limits)
- Don't use URL shorteners in transactional emails
Ready to Fix Your WordPress Email?
Implementing proper email delivery doesn't have to be complicated. With the right SMTP plugin and email provider, you can have reliable email delivery set up in under 5 minutes.