In the following article, we cover the main reasons why your contact form may not be working and possible solutions.
There may be more reasons why the contact form is not sending the emails. And we will describe below the steps that you should follow to try to fix this problem.
Go to your email and check the spam folder. Sometimes the emails go to your spam folder, and you think the form is not working. This is common for Gmail users.
If the emails are in your spam folder you should add them to your approved senders' list to prevent them from happening in the future.
The following resource shows various ways to add emails to the approved senders' list:
On occasions, it's possible that the server you’re using does not have email support.
First, we need to check if your server is sending emails at all.
For that, you can create a new user using an email you have access to.
Step 1 – Add New User
Go to Users > Add New, and complete the form.
Make sure you check the option that sends the password to the user:
Step 2 – Check Email
Check if you’ve received via email the credentials for the new user (make sure you check the spam). If you did receive the credentials, then the email is working great!
Review the next section in this article Flothemes – User Email to see if your WordPress mail settings are causing the email to be blocked.
If you didn’t receive any emails, then you need to contact the hosting to see if email support is provided. Ask if the wp_mail() or PHP Mail() function is enabled for the site.
Alternatively, you can use an SMTP server to send the emails. Please refer to the SMTP section for further details.
Flothemes - User Email
Some hosting companies have security measures in place on a server level, and due to these measures, you can no longer send emails that appear to be from an email address that is not on your account.
To bypass that, most of our themes have an option that let you choose if the ‘From’ data will use the user’s email or the default hosting email:
Using the user’s email in the ‘From’ field is nicer and more convenient to reply to the emails, but that may not work with some hosting providers. Thus if the contact form is not sending emails, disable that option.
Select “No” for using the users' email in the address from the field.
Your emails are being blocked by your server, or you’re having issues with server-side emails being sent.
Sending emails via SMTP is useful, as its bypasses the standard WordPress mail function and it removes all server-side issues.
You can use a plugin such as WP Mail SMTP to send your mails, it allows email testing and debugging options.
Our friends over at WP Beginner have written a great article explaining how to use SMTP mail with Gmail, see the article linked below.
The following tutorial explains how to use Mailgun for WordPress for your SMTP needs. It allows up to 10k emails a month, perfect for your photography site's contact form.
Custom Contact Forms - CF7
Contact form 7 is a very popular plugin allowing you to create custom contact forms and add them anywhere on your site. However, if set up incorrectly you may not receive your inquires.
If you are using contact form 7 Plugin and it doesn’t work then try to set it up properly as described below:
(UPDATE: We recommend using Ninja Forms: https://wordpress.org/plugins/ninja-forms/ as it has a form submission area, this means that even if the email is not received it will still be available in WordPress)
There are two rules:
a) You MUST use an email address that exists in your “Email Accounts” icon in your cPanel. If you didn’t create the email address in your cPanel, it won’t work. (Note that, even if BlueHost isn’t handling your mail/MX, this will still work as long as you create the email address in the Email Accounts icon)
b) You MUST specify the above-mentioned email address in your FROM header in the “Message body” section of Contact Form 7.
By default, the setting is:
FROM: [your-name] (your-email)
Set up an email account in your cPanel, and then replace [your-name] (your-email) with any name you desire, and the email address you have created.
In the image below, notice how I set my From to be:
From: Eddy <firstname.lastname@example.org>
As long as your From uses a valid email address that exists in the Email Accounts icon in your cPanel, then your form should work properly.
Custom Contact Form - Ninja Forms
Ninja forms is our recommended custom contact form provider.
Why? It has an easy user interface, great customization options, tracks email submissions, and is free!
There are 2 reasons why Ninja Forms emails are not being sent (Other than server-side issues and plugin problems):
1. The form is set up but no actions have been set. See more on Ninja form actions here.
Go to Ninja Forms > Select the Form > Go to Emails and Actions. Make sure you have an Email Admin action created.
If this is created, go into the action, and then make sure in the To email field is set to send to your email address.
2. The From Address is the users
Leave the from field blank. Why? It can get your emails blocked at a server level as it sees the email being generated by the from address when it's being sent from your WordPress site address.
See the above image for the optimal setup.
Ninja Forms Troubleshooting Documentation
Also, see the following troubleshooting documentation from Ninja forms:
Finally, it's possible that there is a plugin conflict with our theme, and this may be causing the email functions from working correctly.
Disable all the plugins you have and try again. If the contact form still does not send the emails, please submit a support ticket.
If you’re having issues with your emails not being sent/received, AND you’re using FloForms, please check this article for troubleshooting.