How to fix a WordPress contact form that is not sending
Help centreOn this page
This guide helps you track down why enquiries from a WordPress contact form aren’t reaching your inbox, and how to fix each cause in turn. Work through the sections in order, as the early checks take only a minute.
Look in your spam folder first
Form messages often look like spam to mail filters. They come from your own website, they’re automated, and they can contain links typed in by visitors.
- Open your spam or junk folder in the mailbox that should receive the form.
- Search for your website name or the form’s subject line.
- If you find the messages, mark one as Not spam so future ones land in your inbox.
If you use webmail on our servers, check the Spam folder in Roundcube too. See how to log in to webmail.
Check the recipient address in the form plugin
A single wrong letter in the “send to” address means every message goes nowhere. It’s worth a careful look.
- In WordPress, open your form plugin. For example Contact, then Contact Forms in Contact Form 7, or Forms in WPForms.
- Open the form and find its Mail or Notifications settings.
- Read the To address letter by letter. Watch for .co.uk typed as .com, or the other way round.
- Make sure notifications are switched on. Some plugins let you turn them off per form.
- Save the form.
Set the From address to your own domain
This is the most common cause. Many forms are set to send “from” the visitor’s address, for example someone@gmail.com. Gmail and Outlook can see that your web server isn’t allowed to send for gmail.com, so they reject or bin the message.
- In the same Mail or Notifications screen, find the From field.
- Change it to an address on your own domain, such as website@yourdomain.co.uk. It helps if this address exists as a real mailbox. See how to create an email account.
- Put the visitor’s email field into Reply-To instead. Most plugins let you pick it from a list of form fields, so clicking Reply still goes to the visitor.
- Save and send a test enquiry.
Send through SMTP instead of PHP mail
By default WordPress hands mail to the server with PHP’s mail function. That works, but the messages carry less proof of who sent them. Sending through a real mailbox with an SMTP plugin is more reliable and is the fix we suggest for most sites.
Follow how to send WordPress email with SMTP. Use the same address you set as the From address above.
Add a mail log to see what happens
A mail logging plugin records every email WordPress tries to send. It tells you whether the problem is the form or the delivery.
- In WordPress, go to Plugins, then Add New Plugin.
- Search for a mail log plugin (several free ones exist, and some SMTP plugins include a log).
- Install and activate it.
- Submit your contact form, then open the log.
What the log shows:
- No entry at all. The form never asked WordPress to send. Check the form’s notification settings, and look for a JavaScript error or a spam protection setting blocking the submission.
- An entry marked as failed. Read the error. It often points at the SMTP login or port.
- An entry marked as sent. WordPress did its part. The message is being filtered or rejected further along, so check spam, the From address and SPF.
Check your SPF record
SPF is a DNS record listing the servers allowed to send mail for your domain. If it’s missing or doesn’t include our server, receiving providers may reject your form mail.
- Log in to cPanel and open Email Deliverability in the Email section.
- Look at the status for your domain. If it shows a problem with SPF, click Manage and follow the suggested record.
If your domain’s DNS is managed somewhere else, such as Cloudflare, you need to add the record there. See how to set up SPF, DKIM and DMARC.
If it doesn’t work
- Your mail goes to Microsoft 365 or Google Workspace. The form’s mail leaves our server and goes to them, so the SPF record must include both our server and your mail provider. See how to use Microsoft 365 or Google Workspace email with your domain.
- It worked, then stopped after an update. Update the form plugin and any SMTP plugin, then test again. If it still fails, see how to update WordPress themes and plugins.
- Visitors see an error when they press send. Look in your error log for the exact message. See how to find error logs in cPanel.
- Other email from the site fails too. Password resets and order emails use the same route. See why is my email not sending.
Still stuck? Open a support ticket with the form page address and the time you sent a test, and we’ll help.
WP Toolkit, staging, backups every six hours and free migration of your site.