Skip to main content

Contact form not sending email? How to find the cause

Published on November 9, 2026 11 min read

Form submissions come in but no email arrives? Check entries, the From address, SPF and DKIM, sending limits, SMTP settings and spam filters.

Illustration of a contact form in a browser window launching an orange paper plane past a key and a shield towards a letterbox, while a woman inspects the route with a magnifying glass

Your contact form says the message was sent, but no email arrives? Start by checking whether the submission is stored in your website. If it is, the problem lies in sending the email or on the receiving side: usually a From address that does not belong to your domain, a missing SPF or DKIM record, or a message that ends up in spam or quarantine at your email provider. Below you work through the causes in order, from quick checks to the ones that take more work.

At a glance: where is the problem?

What you see and where to look next
What you seeLikely causeRead on at
The submission is not stored in your websiteThe form itself, for example its spam protectionCheck whether the submission came in
The submission is there, but nobody gets an emailThe recipient address, the From address or the sending limitIs the recipient address right?
A test address at Gmail receives the email, your own address does notYour email is hosted elsewhere, or the recipient's spam filter holds itYour email is hosted with another provider
The email arrives, but in the spam folderThe From address, SPF or DKIMSend from an address on your own domain
It worked until your website or domain movedDNS records, an SMTP plugin with old details, or the mail setting of your domainForms stopped working after a move

Check whether the submission came in

Most WordPress form plugins store every submission in your website, separately from the email. If the submission is there, the form works and the problem is in sending the email. If it is not there, the message never reached your website.

Where to find form submissions
PluginSubmissions in WordPress
Gravity FormsForms > Entries
WPFormsWPForms > Entries, in the paid version. The free WPForms Lite sends submissions by email only.
Contact Form 7With the extra plugin Flamingo, in the Flamingo menu. Without Flamingo a submission exists only as an email.
Elementor ProElementor > Submissions, as long as the Collect Submissions action is set on the form (on by default)

If the submission is missing, see whether the form shows an error after sending and check the spam protection. A reCAPTCHA or Cloudflare Turnstile key belongs to a domain name. If your website now runs on a new domain, a key for the old domain blocks every submission. Create a key for the new domain in that case.

Is the recipient address right?

Open the notification settings of your form. In Gravity Forms and WPForms they are called Notifications, in Contact Form 7 it is the Mail tab and in Elementor the Email action. Look at the recipient field, such as Send To or To, and watch for:

  • A typo or an old address, for example of a former colleague or of the web designer who tested the form.
  • A default value. Out of the box, WPForms sends to {admin_email}, the WordPress administration email address under Settings > General.
  • Several recipients. Most plugins accept them separated by commas.

Next, add an address at another provider next to the usual one, such as your own Gmail address, and send a test submission. If the test address receives the email and your usual address does not, the issue is on the receiving side: read on at Your email is hosted with another provider and Check spam and quarantine. If it arrives nowhere, look at the From address, the sending limit and your SMTP settings.

Send from an address on your own domain

Many forms put the visitor's address in the From field, so you can reply straight away. Your website then sends email on behalf of, say, gmail.com. Receiving mail servers use SPF, DKIM and DMARC to check whether a server may send for a domain, and your website is not allowed to send for Gmail. Such a message is rejected or lands in spam, and our outgoing mail server may already refuse it when it is sent. WPForms warns about this itself with the notice The current From Email does not match your website domain name.

Set it up like this:

  1. Use an address on your own domain as the From address, for example website@yourdomain.com or info@yourdomain.com. Without a setting of your own, WordPress sends from wordpress@yourdomain.com, which is also an address on your domain.
  2. Put the visitor's address in the reply address. Most plugins call this field Reply-To or Reply To, WPForms calls it Reply-To Email Address. Select the email field of your form there. In Contact Form 7, add a line such as Reply-To: [your-email] under Additional headers in the Mail tab, using the name of the email field in your form.
  3. Save and send a test submission. Reply now goes to the visitor, while the email itself comes from your own domain.

Are SPF, DKIM and DMARC set up correctly?

SPF, DKIM and DMARC tell receiving servers which servers may send email for your domain and prove that a message was not changed on the way. For the details, see what is an SPF record, what is DKIM and what is DMARC.

If the DNS of your domain is hosted with LJPc, these records are already in place and our server signs the email from your website with the DKIM key of your domain. That part is taken care of.

If another party hosts your DNS, for example because your email runs on Microsoft 365 or Google Workspace, or because your domain is still being transferred to us, add two things there:

  • The LJPc include in your SPF record. Add include:_spf.ljpc.network to your existing SPF record, next to the include of your email provider. A domain has one SPF record. How to combine includes without breaking your email is explained in how to add DNS records from an email or marketing service.
  • The DKIM record default._domainkey with the key from the DNS check in Plesk. Which records to add at another provider and where to find the DNS check is described in point your domain to LJPc hosting.

If both the include and the DKIM record are missing, email from your website fails the checks at the receiving end. The receiver then rejects the message or files it as spam. This can happen even when email from your mail app arrives fine, for example because that goes through your email provider and not through your website.

Your email is hosted with another provider

If your website is hosted with LJPc and your email with another provider, form emails may end up in an old mailbox on our server or get rejected. As long as email for your domain is switched on with us, our server delivers mail for your own domain itself, without looking at the MX records. The form then sends to info@yourdomain.com on our server, while you read your email at the other provider. Email to addresses on other domains does arrive, which is why the form can seem to work only partly.

If this sounds familiar, make sure your email is fully running at the other provider and open a support ticket. We then switch off email for your domain on our side, so your website delivers to your other provider from then on. This removes all mailboxes of that domain on our server, so move anything you want to keep first. How to do that is explained in close a mailbox and keep your email.

Has the sending limit been reached?

Every hosting package has an hourly sending limit. Email that your website sends counts towards the limit of your whole package. When spam bots fill in your form in bulk, that limit runs out fast and the server refuses email from your website until there is room again. Those refused messages are not sent again later. You then receive our notice that the email rate was exceeded for your subscription. How the limit works is explained in email sending limit. You stop form spam with a bot check, as described in how to report spam and recover quarantined email.

Check spam and quarantine

If the email reaches a test address but not the usual recipient, look in the Junk or Spam folder of that mailbox. Mark the message as not spam there, so your mail app learns from it. If the mailbox is hosted with another provider, the message can also sit in that provider's quarantine, as with Microsoft 365. To a spam filter, form messages sometimes look like spam, especially when bots used your form for links and ads before. How to recover a message that our spam filter held back is described in how to report spam and recover quarantined email.

Forms stopped working after a move

If the form worked until your website or domain moved, check these three things:

  1. The DNS records. If the nameservers of your domain are still at your previous provider, for example because the domain transfer is still running, add the LJPc include and DKIM record there. How a transfer to us works is explained in transfer your domain to LJPc.
  2. An SMTP plugin with old details. If your website sent through the mail server of your previous host, that stops once that account is gone. Enter the details of a mailbox at LJPc, as shown below, or let your website send through our mail servers without an SMTP plugin.
  3. The mail setting of your domain. If your email is hosted with another provider, see Your email is hosted with another provider above.

Sending through SMTP with an LJPc mailbox

With LJPc hosting your website sends email through our outgoing mail servers, also without a plugin. With an SMTP plugin, WordPress logs in to a real mailbox and sends through that mailbox. That helps when you want all email from your website to come from one fixed address, or when you want to see the error the mail server gives when a message does not go out. Well-known plugins include WP Mail SMTP, FluentSMTP and Post SMTP. Choose the option for your own SMTP server (in WP Mail SMTP it is called Other SMTP) and enter the details of your mailbox. They are the same as in set up email on your phone and computer. Step-by-step instructions for each plugin are in how to set up SMTP in WordPress.

SMTP settings for an LJPc mailbox
SettingValue
SMTP server (SMTP Host)ljpc.email
Port and encryption465 with SSL/TLS, or 587 with STARTTLS (many plugins call this option TLS)
UsernameYour full email address
PasswordThe password of that email address
From address (From Email)The same address as the username

Keep in mind:

  • Use an existing mailbox. Create one for your website, such as website@yourdomain.com, as described in create an email address in the customer portal.
  • One From address for everything. Turn on Force From Email in WP Mail SMTP, so every plugin uses the mailbox address as the sender.
  • The mailbox limit. Email sent through the mailbox counts towards that mailbox's sending limit. A web shop or a busy form reaches the limit sooner that way.
  • A new password. When you change the mailbox password, update it in the plugin as well, so your website keeps sending.

How to test whether your form email arrives

  1. Add a Gmail address as an extra recipient in your form and send a test submission.
  2. Open the message in Gmail on your computer, click More (the three dots) next to Reply and choose Show original.
  3. At the top you see the results for SPF, DKIM and DMARC. If all three say PASS, the sender is set up correctly. If one says FAIL, go back to the sections on the From address and on SPF and DKIM above.
  4. Remove the test address from your form afterwards.

For a score with an explanation per check, use mail-tester.com. It gives you a temporary address. Set it as the recipient in your form, send a submission and view the result on the site.

What LJPc hosting takes care of

  • With the DNS of your domain at LJPc, SPF, DKIM and DMARC are in place, also for email from your website.
  • Your website sends through our outgoing mail servers. The hourly sending limit keeps abuse small, so email from you and other customers keeps arriving.
  • When your website reaches the limit, we send you a notice with the limit and the number of refused messages.
  • Still stuck? Open a support ticket in the customer portal. Mention the page the form is on, the address it sends to and the time of a test submission. We can then look up in the logs of our mail servers what happened to the message. How to open a ticket is explained in create a support ticket. More fixes for email that does not arrive are in fix email problems.

Frequently asked questions

Why does my form email reach my own address but not the recipient?

Then your website works and the issue is on the receiving side. If that domain's email is hosted with another provider while email for the domain is still switched on with us, our server may deliver form emails to an old mailbox on our side. A support ticket solves that. Also check the spam folder and the quarantine at the recipient's email provider.

Can I use the visitor's email address as the From address of my form?

Better not. Your website then sends email on behalf of the visitor's domain, such as gmail.com, and such messages are often rejected or marked as spam. Use an address on your own domain as the From address and put the visitor's address in Reply-To, so Reply still goes straight to the visitor.

Why did my contact form stop sending email after moving my website?

Usually for one of three reasons: the DNS is still at your previous provider without the LJPc include and DKIM record, an SMTP plugin still sends through your previous host's mail server, or your email is hosted elsewhere while email for your domain is still switched on with us.

Do I need an SMTP plugin with LJPc hosting?

No. Your website sends email through our outgoing mail servers, and with your DNS at LJPc, SPF, DKIM and DMARC are already set up. An SMTP plugin with an LJPc mailbox helps when you want all email to come from one fixed address or want to see mail server errors. Use ljpc.email with port 465 (SSL/TLS) or 587 (STARTTLS).

How do I send my contact form to a different or extra email address?

Change the recipient in the notification settings of your form: Notifications in Gravity Forms and WPForms, the Mail tab in Contact Form 7 or the Email action in Elementor. Most plugins accept several addresses separated by commas. Send a test submission afterwards.

Why do my contact form emails go to spam?

Often because the visitor's address is used as the From address, or because SPF and DKIM are missing when another party hosts your DNS. Forms that bots filled with links before also make spam filters stricter. Send from an address on your own domain and use Show original in Gmail to check that SPF, DKIM and DMARC say PASS.

Prefer to talk to someone?

We are also happy to answer your questions personally. Schedule a free consultation or call us directly. We are glad to think along with you.

Stay up to date with recent developments! Subscribe and receive our newsletter Signing up...