How to Fix WordPress Email Not Sending: Complete SMTP Setup Guide (2026)
WordPress not sending emails is one of the most frustrating and common issues site owners face. Password resets never arrive, WooCommerce order confirmations vanish into thin air, and contact form submissions get silently dropped. The problem isn’t your WordPress site — it’s the default wp_mail() function, which relies on your server’s local mail system. Most shared hosting plans block port 25 or have aggressive spam filtering that kills outgoing PHP mail before it ever reaches an inbox.
This guide covers everything you need to fix WordPress email delivery in 2026:
- Why WordPress emails fail by default
- How SMTP solves the problem (explained simply)
- Five methods to configure SMTP — from easiest to most flexible
- Which SMTP service to use based on your traffic and budget
- Troubleshooting the most common setup mistakes
- WooCommerce and contact form email fixes
By the end of this guide, your WordPress site will reliably send every email, every time.
Why WordPress Emails Fail (and Why You Need SMTP)
WordPress uses PHP’s mail() function by default. It sounds like it should work — PHP is what runs WordPress — but there’s a catch. The mail() function hands the email off to the server’s local mail transfer agent (MTA), which then tries to deliver it. This chain fails for three reasons:
- Port 25 is blocked — Most shared and budget hosting blocks outbound SMTP port 25 to prevent spam. No port 25 means no delivery.
- No authentication — PHP’s
mail()doesn’t authenticate. Emails sent this way lack SPF and DKIM records, which means receiving servers (Gmail, Outlook, Yahoo) flag them as spam or reject them outright. - No throttling — If your contact form gets hit with spam submissions,
mail()tries to send each one immediately. Hosts detect the flood and silently kill future requests.
SMTP (Simple Mail Transfer Protocol) fixes all three problems. Instead of handing the email to the server’s local MTA, your WordPress site connects directly to an authenticated SMTP server — like Gmail’s, Outlook’s, or a dedicated transactional email service — and sends through that. The result: authenticated, deliverable emails that inboxes actually accept.
| Delivery Method | Authentication | Deliverability Rate | Setup Difficulty | Requires Plugin? |
|---|---|---|---|---|
| PHP mail() (default) | None | 20–40% | None (built-in) | No |
| SMTP via plugin | SPF + DKIM | 95–99% | Easy | Yes |
| Transactional API (SendGrid, Brevo) | API key | 99%+ | Moderate | Yes |
| Hosting-provided SMTP | SPF + DKIM | 90–98% | Easy | Yes |
Prerequisites
Before you start, make sure you have:
- A WordPress site on a host that supports SMTP configuration. Most hosts do — InterServer at $2.50/mo (price-lock guarantee) is a great starting point if you don’t have a site yet.
- SMTP credentials (covered in each method below)
- FTP or file manager access for one method (optional — most methods work from the WordPress admin dashboard)
- About 15 minutes — setup takes longer to explain than to do
Method 1: Use Your Hosting Provider’s SMTP Server (Easiest)
If you’re on a host that includes email service, this is the simplest method — no third-party accounts needed.
InterServer (Hosted Email)
InterServer includes free email hosting with every web hosting plan. Their SMTP server details:
- SMTP Host:
mail.yourdomain.com - Port: 465 (SSL) or 587 (TLS)
- Authentication: Required (use your full email address as the username)
- Encryption: SSL/TLS
SiteGround (Free Email)
SiteGround offers free unlimited email accounts with all plans. Their SMTP credentials:
- SMTP Host:
send.siteground.com - Port: 465 (SSL)
- Authentication: Required (full email address)
- Encryption: SSL
Cloudways (Elastic Email Add-on)
Cloudways offers an Elastic Email add-on ($0.10/1000 emails) through their ThunderStack dashboard. No plugin configuration needed — enabling it in the Cloudways panel automatically configures WordPress to send through it.
How to Configure Any Provider’s SMTP in WordPress
Install and activate a free SMTP plugin (WP Mail SMTP or Easy WP SMTP are both solid), then:
- Go to Settings → WP Mail SMTP (or the plugin’s settings page)
- Select Other SMTP as the mailer
- Enter your hosting provider’s SMTP host, port, and encryption
- Enter your full email address as the username and the email account’s password
- Send a test email to confirm it works
One downside of hosting-provided SMTP: You’re sharing the sending IP with your host’s other customers. If someone else on the same server gets their email blacklisted, yours may be affected, too. For low-volume sites (under 300 emails/month), this rarely matters. For higher volumes, move to Method 2 or 3.
Method 2: Free Email Provider SMTP (Gmail, Outlook)
If your hosting doesn’t include email, you can use a free Gmail or Outlook account as your SMTP relay. This works well for low-volume sites but has limits.
Gmail SMTP
- SMTP Host:
smtp.gmail.com - Port: 587 (TLS)
- Authentication: Required (full Gmail address)
- App Password Required — You must generate an app-specific password from your Google Account settings (regular password won’t work with 2FA enabled)
Limits: 500 emails per day, and Google may temporarily lock the account if it detects automated sending patterns. Use this only for sites sending under 100 emails/day (password resets, admin notifications).
Outlook SMTP
- SMTP Host:
smtp.office365.com - Port: 587 (TLS)
- Authentication: Required
Limits: 300 emails per day. More reliable than Gmail for transactional sending since Microsoft doesn’t flag automated patterns as aggressively.
Free SMTP Options Comparison
| Provider | Daily Limit | Best For | Setup Difficulty | SPF/DKIM |
|---|---|---|---|---|
| Gmail SMTP | 500/day | Personal sites, low traffic | Easy | Automatic |
| Outlook SMTP | 300/day | Business email setups | Easy | Automatic |
| Hosting-provided SMTP | Varies by host | Most WordPress sites under 300/mo | Easy | Needs manual setup |
| Hosting mailbox (InterServer) | Unlimited | Budget sites with price-lock | Easy | Auto-configured with cPanel |
Method 3: Dedicated Transactional Email Services (Best for Growing Sites)
If your site sends more than 500 emails per day — maybe you’re running a WooCommerce store, an LMS, or a membership site — free SMTP options won’t cut it. Dedicated transactional email services are built to handle high volumes reliably.
These services use APIs instead of SMTP, which means faster sending, detailed analytics, and better deliverability. Most offer free tiers that cover thousands of emails per month.
Popular Transactional Email Services
| Service | Free Tier | Paid From | Best Feature |
|---|---|---|---|
| Brevo (Sendinblue) | 300 emails/day | $25/mo | Built-in CRM + analytics |
| SendGrid | 100 emails/day | $19.95/mo | Excellent deliverability APIs |
| Mailgun | 1,000 emails/month | $35/mo | Flexible routing rules |
| Postmark | 25,000 free trial sends | $15/mo | Fastest delivery times |
For most WordPress sites, Brevo is the best starting point (300 free emails daily covers most use cases), while Mailgun is the standard recommendation if you outgrow free tiers.
Method 4: WP Mail SMTP Plugin Setup (Detailed Walkthrough)
WP Mail SMTP by WPForms is the most popular SMTP plugin, with over 3 million active installs. It’s free, well-supported, and works with every method above. Here’s the full setup:
Step 1: Install and Activate
- In your WordPress admin dashboard, go to Plugins → Add New
- Search for “WP Mail SMTP”
- Install and activate the plugin by WPForms
Step 2: Configure Your Mailer
- Go to Settings → WP Mail SMTP
- Under Mailer, choose your sending method:
- Other SMTP — For hosting-provided SMTP (InterServer, SiteGround)
- Gmail / Outlook — For free email relay
- SendGrid / Mailgun / Postmark / Brevo — For dedicated transactional services
- Enter the SMTP credentials (host, port, encryption, username, password)
Step 3: Set the From Email and Name
This is where most people accidentally break their email deliverability. The From Email must match an email address on the SMTP server you’re sending through. If you set it to noreply@yourdomain.com but your SMTP server is Gmail, the email will fail SPF checks and land in spam.
Rule of thumb: If you’re using Gmail SMTP, the From Email must be your Gmail address. If you’re using hosting-provided SMTP, the From Email must be one of your hosting email accounts.
Step 4: Additional Settings
- Force From Email — Enable this to override plugins that set their own from addresses
- Return Path — Enable to bounce failed emails back to your From Email address
- Email Logging — The free version logs the last few emails; the Pro version stores unlimited logs
Step 5: Send a Test Email
WP Mail SMTP has a built-in test email tool. Enter your personal email address and click Send Email. If it arrives, your setup is working. If not, the plugin shows the exact error message — use the troubleshooting section below to diagnose it.
Method 5: Configure SMTP via wp-config.php (For Developers)
If you prefer not to use a plugin — or you’re building a custom solution — you can define SMTP constants directly in wp-config.php. This method requires FTP or file manager access.
Add this code above the /* That's all, stop editing! */ line in your wp-config.php file:
// SMTP Configuration
define('SMTP_HOST', 'smtp.yourprovider.com');
define('SMTP_PORT', 587);
define('SMTP_AUTH', true);
define('SMTP_USERNAME', 'you@yourdomain.com');
define('SMTP_PASSWORD', 'your-email-password');
define('SMTP_SECURE', 'tls');
define('SMTP_FROM', 'you@yourdomain.com');
define('SMTP_FROM_NAME', 'Your Site Name');
Then add this to your theme’s functions.php or a custom plugin to actually use the constants:
add_action('phpmailer_init', function($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_HOST;
$phpmailer->Port = SMTP_PORT;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Username = SMTP_USERNAME;
$phpmailer->Password = SMTP_PASSWORD;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_FROM_NAME;
});
This method gives you full control with zero extra plugin overhead, but it’s harder to debug if something goes wrong. Stick with WP Mail SMTP unless you’re comfortable editing PHP files.
WooCommerce Email Fixes
WooCommerce sends a lot of transactional emails — order confirmations, shipping updates, password resets, account creation receipts. If your WooCommerce store emails aren’t arriving, here’s what to check first:
Common WooCommerce Email Issues
| Issue | Cause | Fix |
|---|---|---|
| Order confirmations not sent | PHP mail timeout on large orders | Switch to SMTP (Method 1 or 2) |
| "New Order" email to admin missing | Admin email uses different domain than SMTP from address | Ensure From Email matches admin email domain |
| Invoice PDFs not attaching | WP Mail SMTP may strip attachments on free tier | Use transactional service (Method 3) |
| Emails going to spam | Missing SPF/DKIM records | Add DNS records for your sending domain |
For WooCommerce stores with more than 50 orders per day, skip free SMTP entirely and go straight to a transactional service like Brevo or SendGrid. The deliverability difference is worth the $20–35/month.
Troubleshooting Common SMTP Issues
Test Email Succeeds But WordPress Emails Still Fail
This usually means a specific plugin is overriding the SMTP settings. Use WP Mail SMTP’s Email Log feature to see what From address each plugin uses. The fix is to enable Force From Email in the plugin settings.
Connection Refused on Port 465 or 587
Your hosting provider may be blocking outbound SMTP ports. Some budget hosts block all outbound SMTP to prevent spam. Check with your host’s support team. If they block it, you’ll need to use a transactional API service (Method 3) instead of standard SMTP.
Authentication Failed
Double-check:
- Your email password (not the WordPress account password)
- That you’re using the correct SMTP username (usually the full email address)
- For Gmail: that you generated and used an App Password, not your regular password
- That the SMTP server address is correct (common typos: missing dots, wrong provider URL)
Emails Landing in Spam
This is an SPF/DKIM issue. Your SMTP server’s IP needs to be authorized to send email for your domain. Add these DNS records:
SPF Record (TXT record):
v=spf1 include:_spf.your-smtp-provider.com ~all
DKIM Record (TXT record): Generated by your SMTP provider — each service provides a unique DKIM key to add to your DNS.
Most hosting providers auto-configure these in cPanel or the hosting dashboard. If you’re using a third-party SMTP (Gmail, SendGrid, Brevo), you’ll need to add them manually in your domain’s DNS settings.
Which SMTP Method Should You Choose?
Here’s a quick decision guide based on your site’s needs:
- Personal blog under 100 emails/month — Use your hosting provider’s SMTP. InterServer includes free email at $2.50/mo (per their price-lock policy), or SiteGround at $2.99/mo intro.
- Business site, 100–300 emails/month — Use Gmail or Outlook SMTP. Free, reliable, and easy to set up with WP Mail SMTP.
- Growing site, 300–3,000 emails/month — Use Brevo’s free tier (300/day). Setup takes 10 minutes and deliverability is excellent.
- WooCommerce store, membership site, or LMS — Use a transactional service (SendGrid, Mailgun, Postmark). The free tier usually covers your first few hundred orders.
- Cloud-managed WordPress — Cloudways includes Elastic Email natively in their dashboard. No plugin needed — it’s configured at the server level.
FAQ
Is SMTP the same as email hosting?
No. Email hosting gives you an inbox where you can read and send emails from your domain (like yourname@yourdomain.com). SMTP is the protocol used to send those emails. They’re related but separate services. Some hosting providers include both; others only provide inbox hosting and expect you to use their SMTP server for sending.
Will SMTP slow down my WordPress site?
No. SMTP happens in the background — the user submits a form or places an order, WordPress hands the email to the SMTP plugin, the user’s page loads instantly, and the email sends a few seconds later. Using a transactional API reduces the overhead further because the email is sent asynchronously.
How do I test if my WordPress email is working?
Install WP Mail SMTP and use its built-in test email tool. Enter your personal email and click Send. If it arrives, your setup works. For a more thorough test, reset a user’s password on your site and verify that reset email arrives in the test inbox within 60 seconds.
Do I need SPF and DKIM records?
Not strictly required to send emails, but strongly recommended. Without SPF and DKIM, email providers flag your messages as potential spam. Google’s Gmail now requires both DKIM and SPF for bulk senders (over 5,000 messages/day), but even for small senders, having both records significantly improves deliverability.
Can I use the same SMTP for multiple WordPress sites?
Yes — as long as you stay within the provider’s daily or monthly limits. Gmail’s 500/day limit applies across all sites on one account. For multiple sites sending significant volume, use a transactional service with per-site API keys so you can monitor delivery separately.
What’s the cheapest way to fix WordPress email delivery?
If your hosting includes email, it’s free — just configure your SMTP plugin and you’re done. InterServer at $2.50/mo (price-lock guarantee) includes free email hosting plus SMTP, making it the cheapest option that doesn’t require a third-party service.
Related Reading
- How to Set Up Professional Email for Your Business Website — Setting up @yourdomain email inboxes (complementary guide)
- How to Build a Membership Site with WordPress — Membership sites send lots of transactional emails; use this guide alongside the SMTP setup
- How to Secure Your WordPress Site — Keeping email authentication secure is part of overall site security
Final Thoughts
WordPress email delivery issues are frustrating, but the fix is straightforward. Pick the SMTP method that matches your site’s volume, configure it with WP Mail SMTP, add your SPF/DKIM DNS records, and test. Once it’s set up, you’ll never think about it again — password resets will arrive, WooCommerce orders will confirm, and contact forms will actually reach your inbox.
If you’re starting a new WordPress site and want to avoid email headaches from day one, choose a host that includes quality email services. InterServer at $2.50/mo with a price-lock guarantee is the most budget-friendly option, while SiteGround and Cloudways offer premium email solutions with their managed hosting plans.
Research-backed reviews by Tech & SaaS Stack. We compare hosting, SaaS, and software based on pricing, features, and performance data.