You built your website, set up a contact form, and tested it — but the emails never arrive. You check your spam folder. Nothing. You test again. Still nothing. This is one of the most common — and most quietly frustrating — problems WordPress site owners run into, and it almost always comes down to the same root cause.
Why WordPress Contact Forms Stop Sending to Gmail
WordPress sends email using the PHP mail() function by default. This function sends email directly from your hosting server without any authentication — and Gmail, along with most modern email providers, now rejects or silently drops unauthenticated messages because they look like spam.
Your hosting server is not Gmail. When it tries to send an email claiming to be from your domain without proper verification, Gmail's spam filters treat it with suspicion. The result: the email is sent from your server's perspective, but it never lands in your inbox.
The Fix: SMTP Authentication
The solution is to route your WordPress emails through an authenticated SMTP server instead of relying on PHP mail. Here are your three best options depending on your setup:
Option 1: Use Gmail SMTP (Free, Works for Low Volume)
If you send fewer than 500 emails per day, Gmail's free SMTP works well. You will need to:
- Enable 2-Factor Authentication on your Google account
- Generate an App Password under your Google Account → Security settings
- Install a plugin like WP Mail SMTP and configure it with
smtp.gmail.com, port 587 (TLS), your Gmail address, and the App Password
Important: do not use your main Gmail password — App Passwords are specific one-time credentials that bypass the 2FA requirement for third-party apps.
Option 2: Use a Transactional Email Service (Recommended for Business Sites)
Services like Brevo (formerly Sendinblue), Mailgun, or Amazon SES give you a dedicated SMTP relay with delivery tracking and much higher deliverability rates. Brevo's free tier includes 300 emails per day — more than enough for a contact form.
Setup is the same: install WP Mail SMTP, choose your provider, enter the API key or credentials they provide.
Option 3: Use Your Hosting's Own SMTP
Most hosting providers (CyberPanel, cPanel, etc.) include email hosting. Create a mailbox like [email protected] and use that server's SMTP credentials in WP Mail SMTP. This keeps everything on your own infrastructure.
Verify Your DNS Records Too
Even with proper SMTP, emails can end up in spam if your domain is missing proper authentication records. Check that your domain has:
- SPF record — tells receiving servers which servers are allowed to send email for your domain
- DKIM record — a cryptographic signature that proves the email wasn't tampered with
- DMARC record — tells receivers what to do if SPF/DKIM checks fail
Your hosting provider or transactional email service will give you the exact DNS records to add. Without these, even perfectly configured SMTP can still land in spam with Gmail.
Test Before You Call It Fixed
After configuring SMTP, use the built-in test email feature in WP Mail SMTP to verify delivery. Then submit your actual contact form and check both your inbox and spam folder. Also ask the person who submitted to check their sent folder — sometimes the issue is with the reply-to address, not the delivery itself.
Need a hand?
Still Not Working After All This?
Some configurations — especially on older hosting setups — require server-level changes that go beyond plugin settings. Our team can diagnose and fix your WordPress contact form properly.
Get Your Site Fixed