You fill out your own contact form to test it. The success message appears. But the email never arrives — not in your inbox, not in your spam folder, nowhere. The form plugin is working. The problem is almost always how WordPress sends email.
Why WordPress email delivery fails
By default, WordPress uses a PHP function called mail() to send email. Most shared hosting servers either block mail() entirely (to prevent spam abuse), have it configured incorrectly, or send emails that major providers (Gmail, Outlook, Apple Mail) immediately mark as spam. The email is "sent" from WordPress's perspective — but it never arrives.
The fix: use SMTP instead of PHP mail()
SMTP (Simple Mail Transfer Protocol) routes your WordPress emails through a proper mail server — your Gmail account, your business email provider, or a dedicated transactional email service. This tells receiving mail servers that your email is legitimate, which means it gets delivered instead of silently dropped.
WordPress maintenance plans — developer support included →How to set up SMTP in WordPress
Install WP Mail SMTP
Install the free WP Mail SMTP plugin by WPForms. This is the most reliable SMTP plugin available and has a guided setup wizard.
Choose a mailer
The plugin supports Gmail/Google Workspace, Outlook, Brevo (formerly Sendinblue), Mailgun and others. For most UK businesses, Gmail or your business email provider works well for low to medium form volumes.
Connect your email account
Follow the plugin's authentication flow for your chosen provider. For Gmail, you'll need to create an App Password in your Google account security settings — standard Gmail passwords won't work here.
Set a From Email address
Set the From Email to a real inbox you control — not noreply@ addresses from your hosting, which are usually treated as spam. Use contact@yourdomain.com or a similar address you can actually receive mail on.
Send a test email
Use WP Mail SMTP's built-in email test tool to send a test to your inbox. Check both the inbox and spam folder. If the test email arrives, your contact form emails will too.
If emails still land in spam
If SMTP is configured but emails still arrive in spam, the issue is your domain's email authentication records. You need three DNS records set correctly:
- →SPF record — tells receiving mail servers which servers are allowed to send email from your domain
- →DKIM record — adds a cryptographic signature to verify the email hasn't been tampered with
- →DMARC record — tells receiving servers what to do with emails that fail SPF or DKIM checks
If you're using Google Workspace for your business email, Google's admin console shows you exactly which records to add to your domain's DNS. Your domain registrar (GoDaddy, Namecheap, 123-reg) is where you add them. This is a one-time fix and permanently improves your email deliverability.
High-volume contact forms
If you receive hundreds of contact form submissions per month, Gmail SMTP has sending limits (500 emails/day for Gmail, 2,000/day for Google Workspace). For higher volumes, use a dedicated transactional email service: Brevo, Mailgun, Postmark or Amazon SES. These are designed for high-volume automated email and are significantly more reliable for form notifications.
ImportantWhile fixing this, also check: does your contact form have a spam filter? WPForms, Gravity Forms and Contact Form 7 can silently delete form submissions flagged as spam — which means emails are blocked before they're ever sent. Check your form's spam settings and entries log to confirm submissions are actually being received.