One of the most frustrating WordPress issues is when emails don’t arrive. Contact form submissions disappear, password resets never come through, or order notifications are missing. In short: WordPress email isn’t working. This is common and can have multiple causes — from site settings to server configuration or external factors. In this guide I outline the likely causes and give practical steps to fix the problem. It’s accessible but thorough, so even semi‑technical site owners can follow it.
Issues inside WordPress
Start by checking WordPress itself. Often the cause is a misconfigured setting or plugin:
- Incorrect WordPress email settings — check the Administration Email Address in Settings → General. A typo or invalid address can stop mail from arriving.
- Contact form plugin misconfiguration — check the To and From fields in your form plugin (Contact Form 7, Gravity Forms, Ninja Forms, etc.). The recipient must be correct. The From address should usually be an address on your own domain (e.g.,
info@yourdomain.com), not the submitter’s address. Use the submitter’s email as Reply‑To to avoid spoofing issues. - Plugin conflicts or mail‑blocking plugins — some security or SMTP plugins can block mail if misconfigured. Temporarily disable email‑related plugins and test again.
Tip: test WordPress email with a simple plugin like Check & Log Email. If test emails don’t arrive, the problem is likely at the hosting/server level. If they do arrive, the issue is probably in your form plugin configuration.
Hosting configuration issues
If WordPress is configured correctly but emails still don’t go out, the hosting environment may be the cause:
- PHP
mail()disabled — WordPress useswp_mail(), which relies on PHPmail(). Some hosts disable this or require special configuration. Ask your host ifmail()is enabled. - Sending limits and spam protection — hosts often limit outgoing emails per hour. If you exceed this limit or trigger spam filters, mail may be blocked temporarily. Check your hosting panel for warnings or limits.
- Email routing (local vs remote) — if you use an external email provider (Google Workspace, Microsoft 365), set your hosting panel’s mail routing to Remote. Otherwise the server tries to deliver locally and emails never leave the server.
- Shared IP reputation — on shared hosting you share an IP with other sites. If the IP is blacklisted, your mails may be rejected. Ask your host about delisting or a clean IP.
Approach: first test with Check & Log Email. If nothing arrives, contact your host and ask whether outgoing mail is supported and if any blocks are active.
External factors (DNS and SMTP)
Sometimes WordPress and the server work fine, but emails are blocked or end up in spam because of external factors.
DNS records (SPF, DKIM, DMARC)
Modern mail providers verify that emails are actually authorized by your domain. This is done via DNS records:
- SPF: defines which servers may send email for your domain.
- DKIM: adds a cryptographic signature to outgoing mail.
- DMARC: tells providers what to do if SPF/DKIM fail.
If these records are missing, mail may be rejected or marked as spam. Add correct SPF, DKIM, and DMARC records for your domain. Most hosts or email providers supply these values.
Email goes to spam
Even if mail is delivered, it might land in spam. Tips to reduce this:
- Use a professional sender address on your own domain.
- Avoid spam‑like subject lines and excessive punctuation.
- Consider a dedicated IP or a reputable mail service if deliverability is critical.
Configure SMTP for WordPress
The most reliable solution is to send WordPress mail via SMTP instead of PHP mail(). With an SMTP plugin (WP Mail SMTP, Easy WP SMTP, Post SMTP), all mail is routed through a real mail server with authentication. This greatly improves deliverability.
You can use your own provider (hosting SMTP, Gmail/Outlook) or a transactional email service (SendLayer, Mailgun, Sendinblue, Amazon SES, etc.). Configure the SMTP host, port, TLS/SSL, username, and password, and use a sender address on your own domain. Then send a test email.
If you use an external SMTP service, you’ll also need to add the DNS records they provide (SPF/DKIM).
Summary and checklist
WordPress email issues are multi‑factor. Start with WordPress settings, then check hosting configuration, and finally external factors like DNS and SMTP. In many cases the ultimate fix is an SMTP plugin combined with correct DNS records.
Checklist – 10 things to verify when WordPress isn’t sending email:
- Checked spam folder?
- Administration email address correct?
- Contact form settings correct (To/From/Reply‑To)?
- Test email sent via Check & Log Email?
- Plugin conflicts ruled out?
- PHP
mail()enabled on server? - Sending limits or blocks on host?
- Mail routing set to Remote/External?
- SPF/DKIM/DMARC records present?
- SMTP plugin configured with a reliable mail server?