WordPress Contact Form Not Sending? Here’s the Fix

Why Your Contact Form Emails Aren’t Arriving

You’ve got a contact form on your WordPress site. Someone fills it in, clicks submit, and gets a “message sent” confirmation. But the email never arrives in your inbox. This is one of the most common WordPress problems I deal with, and the fix is straightforward once you understand what’s happening.

The Problem: PHP Mail

By default, WordPress sends emails using a PHP function called wp_mail(), which relies on your server’s built-in mail system. The problem is that most hosting providers either block this entirely or don’t configure it properly. Even when PHP mail does work, the emails it sends often get flagged as spam. That’s because they’re sent from a generic server with no authentication. Email providers like Gmail, Outlook, and Yahoo look at these emails and think: “This doesn’t have proper SPF or DKIM records. This is probably spam.” Into the junk folder it goes, or it gets rejected entirely. This affects every form plugin: Contact Form 7, WPForms, Gravity Forms, Ninja Forms. It doesn’t matter which one you use. If the underlying email delivery is broken, no form plugin will fix it.

The Fix: WP Mail SMTP

The solution is to send WordPress emails through a proper SMTP server instead of PHP mail. The easiest way to do this is with the WP Mail SMTP plugin. Here’s how to set it up:

Step 1: Install WP Mail SMTP

Go to Plugins > Add New in your WordPress admin. Search for “WP Mail SMTP” and install the one by WPForms (it has over 3 million active installations). Activate it.

Step 2: Choose your mailer

WP Mail SMTP supports several email services. The best options are: Gmail / Google Workspace: If you use Gmail or Google Workspace for your business email, this is the easiest option. You’ll need to set up a Google API connection (the plugin walks you through it). SMTP.com or Brevo (formerly Sendinblue): Both offer free tiers that handle more than enough emails for contact form submissions. These are reliable and simple to configure. Other SMTP: If you have SMTP credentials from your hosting provider or email service, you can enter them manually. You’ll need the server address, port, username, and password.

Step 3: Configure the settings

For the “From Email,” use an email address on your own domain (like [email protected]). Make sure “Force From Email” is ticked. For the “From Name,” use your business name or your own name. If you’re using manual SMTP settings, here are the port details:
  • Port 587 with TLS encryption: this is the standard and works with most providers
  • Port 465 with SSL encryption: use this if your provider specifically requires it
  • Port 25: avoid this. Many hosting providers block it, and it’s unencrypted

Step 4: Send a test email

WP Mail SMTP has a built-in email test. Go to WP Mail SMTP > Tools > Email Test. Enter your email address and click “Send Test.” If it arrives, you’re sorted. If it doesn’t, the plugin will show you the error message so you can troubleshoot.

Common Problems and How to Fix Them

Gmail “less secure apps” no longer works. Google removed the “less secure apps” option. You need to use the Gmail API method or set up an App Password if you have two-factor authentication enabled. WP Mail SMTP’s Gmail option uses the API method, which is the correct approach. Emails still going to spam. Make sure your domain has proper DNS records. You need:
  • SPF record: tells email servers which servers are allowed to send email for your domain
  • DKIM record: adds a digital signature to verify emails are legitimate
  • DMARC record: tells receiving servers what to do with emails that fail SPF or DKIM checks
Your email provider or hosting company can help you set these up. They’re DNS TXT records that you add through your domain registrar. Form says “sent” but nothing happens. Check your spam and junk folders first. Then check if the “From Email” in WP Mail SMTP matches a real email address on your domain. Some email providers reject messages where the “from” address doesn’t exist. Works for test emails but not form submissions. Check your form plugin settings. Some form plugins override the “from” email with their own settings. Make sure the form plugin is set to use WordPress defaults or the same email configured in WP Mail SMTP.

A Quick Way to Check If Emails Are Working

Beyond the WP Mail SMTP test, try submitting your own contact form as if you were a customer. Use a different email address (not the one receiving the submissions) and fill out every field. If the email doesn’t arrive within a few minutes, something is still wrong. Also check if notification emails from WordPress itself are working: password resets, user registration emails, and WooCommerce order notifications all use the same email system.

Missing Emails Could Be Costing You Customers

Here’s the part that should worry you: if your contact form emails aren’t arriving, you’ll never know about the enquiries you’ve missed. There’s no error message on your end. Potential customers think they’ve contacted you and are waiting for a response that will never come. If you’re not sure whether your contact form is working properly, get in touch. I offer a $150 diagnostic that covers email deliverability, form configuration, and DNS records. I’ll make sure every enquiry actually reaches your inbox.