πŸ“„
Webhosting

WordPress contact form not sending email

πŸ“… 7 October 2026 ✏️ 7 October 2026 ⏱ 5 min leestijd

Contact form on WordPress not working? Here’s how to find the cause and make sure form emails arrive in your inbox again.

A contact form that doesn’t send email is a common problem with WordPress websites. Usually it’s not the form itself that’s at fault, but the way your server sends email. WordPress uses the PHP mail() function by default, which is often flagged as spam or doesn’t arrive at all. The solution usually lies in setting up SMTP and checking your email authentication.

Why the mail doesn’t arrive

Most contact forms, such as Contact Form 7 or WPForms, send email via the server’s built-in PHP mail() function. This works technically, but many spam filters distrust this method because the sender isn’t properly verified. As a result, the mail ends up in the spam folder, or is rejected entirely by the receiving mail server.

Other common causes include: an incorrectly configured sender address (for example, an address that doesn’t belong to your domain), a misconfigured plugin, or a hosting environment where mail() is disabled entirely.

Form→SMTP plugin→Inbox

From form to inbox via SMTP instead of mail()

Setting up SMTP in WordPress

The most reliable solution is sending form mail via SMTP with a real email account, instead of via mail(). To do this, install an SMTP plugin, for example WP Mail SMTP.

1

Create an email account

Create an email address in Plesk that you use specifically for sending, for example [email protected].

2

Install an SMTP plugin

Install a plugin such as WP Mail SMTP and choose ‘Other SMTP’ or the option that matches your mail server.

3

Enter the SMTP details

Enter the email address, password, SMTP server (e.g. mail.yourdomain.com), port, and encryption. You can find these details when setting up your email account.

4

Send a test email

Most SMTP plugins have a built-in test function. Send a test email and check whether it arrives, including in the spam folder.

πŸ’‘ Tip: Always use an address from your own domain as the sender address, not Gmail or Outlook. Otherwise, many mail servers will reject the message because the sender doesn’t match the server that’s sending it.

Testing and checking the form

Still not working after setting up SMTP? Check the following points:

  • Verify that the sender address in the plugin settings exactly matches the email address you created.
  • Check the spam folder of the receiving address, not just the inbox.
  • Check whether your contact form plugin (such as Contact Form 7) itself still sets its own ‘From’ address that differs from your domain.
  • Test with a different receiving email address, for example on another domain, to rule out that the problem lies with one specific mailbox.

You can also test your business email separately from WordPress using a regular email client, to see whether the problem lies with the form or with the mail server itself. You can read more about this at setting up business email.

Checking SPF, DKIM and DMARC

If your mail is being sent but ends up in spam, this is often due to missing or incorrect email authentication. SPF, DKIM, and DMARC are DNS records that tell receiving mail servers that your server is authorized to send mail on behalf of your domain.

Check via Plesk whether these records are set up correctly for your domain. If they’re missing, there’s a good chance form mail will be seen as untrustworthy. You can find more explanation and instructions on this in the knowledge base article on email ending up in spam.

Do you manage your domain and DNS settings somewhere other than your hosting package? Then you’ll need to adjust the records there. You can check how to arrange this via managing domain names.

Frequently asked questions

Why doesn’t mail() work on my server?

Many hosting environments restrict or disable the PHP mail() function due to the risk of abuse, or the mail is sent but immediately marked as spam because there’s no authentication behind it.

Do I need to create a separate email address for each form?

No, one created email address that you use specifically for sending via SMTP is sufficient for all forms on the same website.

Can I test whether my mail is arriving properly?

Yes, send a test email to an external address and check both the inbox and the spam folder. Many SMTP plugins also have a built-in test function.

Does switching hosts help?

If your hosting environment structurally blocks or poorly supports email sending, switching to a host with good email support can solve the problem. Check out switching to Tandata for this.

Conclusion

A contact form that doesn’t send email is usually caused by WordPress sending via the unreliable mail() function. Set up SMTP with a real email address, check your sender address, and make sure SPF, DKIM, and DMARC are configured correctly. That way, form mail will reliably arrive again.

View web hosting β†’

Was dit artikel nuttig?