Contact Form Issues and Solutions
There are some users that have issues with the contact form emails, this is not uncommon as there are many factors that can cause issues with sending emails from your site.
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.
Spam Folder
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.
Solution
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:
Server Error
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.
Solution
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.
Solution
Select “No” for using the users' email in the address from the field.
Using SMTP
Your emails are being blocked by your server, or you’re having issues with server-side emails being sent.
Solution
Sending emails via SMTP is useful, as it bypasses the standard WordPress mail function and 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.
Gmail SMTP
Our friends over at WP Beginner have written a great article explaining how to use SMTP mail with Gmail, see the article linked below.
Mailgun SMTP
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)
Setup 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 <steady@wordpress.shadowlantern.com>
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.
Source: http://wordpress.shadowlantern.com/how-to-make-contact-form-7-work-on-bluehost/
Custom Contact Form - Ninja Forms
Ninja forms are our recommended custom contact form provided.
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.
Solution
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:
Plugin Conflict
Finally, it's possible that there is a plugin conflict with our theme, and this may be causing the email functions from working correctly.
Solution
Disable all the plugins you have and try again. If the contact form still does not send the emails, please submit a support ticket.
FloForms
If you’re having issues with your emails not being sent/received, AND you’re using FloForms, please check this article for troubleshooting.