It’s not uncommon for users to encounter a problem with their contact form not sending email. As a result, they can miss many important messages, from potential customers looking to get in touch with them or other business owners looking to collaborate with them.
First, let’s start with the diagnostics.
What are possible reasons for your forms not sending (or not receiving) emails?
1. Your emails are seen as ‘spoof’ emails
Spoof emails are similar to spam. Except emails that are suspected of spoofing rarely even make it to an inbox. Basically, your form sends out an email acting as if it was sent by the domain where the form was installed (the WordPress site). This is often not the case, but more on that below. The receiving host will notice this ‘shady’ behaviour and, depending on the hosting company’s policy, move the email directly to your spam folder.
Out of curiosity: when was the last time you checked your spam folder?
So why is it that your form may be spoofing, without you even knowing about it? Two possibilities:
First, your formbuilder of choice will often use your admin email address as a default for sending emails. If you have an admin address ending in gmail.com or anything that differs from the website URL where you installed the form, it is safe to assume that you are guilty of spoofing.
Second, form builders such as Contact Form 7 often send you a notification about a new submission by using the email of the person who completed it as the “from” sender.:
This is even worse from a SPAM point of view, because every single submission will have another “from” address, so there is no chance you can tell your email provider to whitelist incoming submission emails.
In any of these cases notifications might be lost and never end up in your inbox.
2. Your hosting company doesn’t use the PHP Mail function
Another reason you’re likely running into is because of the PHP mail function and your hosting provider.
If your web host doesn’t support or stopped supporting the PHP mail function, (which is very common these days) that could be the reason your contact form isn’t sending email. The PHP mail function is used by WordPress to send emails from your site, including emails generated by contact form plugins.
This is why we recommend using SMTP to send emails from WordPress instead of using the default PHP mail function.
Now let’s take a look at how to fix the problem.
1. Change the “From” Address
This can actually be quite simple, but is far from fail-safe. But there is nothing you can lose, as long as you are able to test your fix.
Basically, you go to your form dashboard, search for the settings for the notifications / form submission, and enter any email address that ends with the domain which your website uses. If you have mysite.xyz, just use firstname.lastname@example.org. This CAN work, but still the receiving host could be suspicious when it realizes the mail was sent with the php method.
Another one bites the dust.
But even if that’s the case, you can whitelist (mark as “no spam”) and continue receiving those notifications. Please beware that this only solves your side of the equation. If you want the form to send an auto-reply to the person who submitted, you’ll never know if this works for EVERY email provider receiving the auto-reply.
2. Use an SMTP Mail plugin
If you’re looking for reliable email deliverability, you should use SMTP (Simple Mail Transfer Protocol) in WordPress.
Go to your plugin Dashboard in WordPress, click “Add new” and then choose one of the following:
With this plugin you can enter the SMTP data from your existing email account, or you choose to use one of these providers:
Most of these mailers have free subscription plans that limit the number of emails you can send from WordPress per day. Personally, I use SendGrid, as the free plan lets you get 100 mails per day, which should be enough for most normal websites.
If you don’t feel like opening yet another account with another service provider, you can still use the SMTP data that your hosting company provides you, or create a new mailbox at the domain the website where you installed the form.
In this case, just go through these steps, as outlined in the video below:
I hope this helped – please leave any questions and suggestions, any mistakes and omissions in the comments below.
Or, just tell me which SMTP plugin you use, and why!