Web

Contact Form Not Sending Emails? How to Find and Fix the Cause

Talha Aslan 16 min read 14 views

Short answer

Contact form not sending emails: what should you check first?

A contact form not sending emails is a form that shows a success message while the notification never reaches your inbox or lands in spam. First, check your spam folder. Then send yourself a test message and trace where it disappears, one step at a time.

Keep reading for the full details and examples

At Talha Aslan and team, we see this pattern often. The visitor sees a thank you message. The business owner receives nothing. As a result, a real lead vanishes, and nobody notices for weeks. That is why you should rule out causes in order instead of guessing.

  1. Check spam, junk and quarantine folders, and review your inbox rules.
  2. Send a test message from the form with a different address and note the time.
  3. Check whether the form stores entries in a database or dashboard.
  4. Find out how the form sends mail: the server mail function or authenticated SMTP.
  5. Check the SPF, DKIM and DMARC records for your domain.
  6. Look at the From field and see whether it uses the visitor address.

Why does the form say "sent" when no email arrives?

The success message proves only one thing. Your site software handed the message to the next step. It does not prove that the receiving server accepted it or placed it in the inbox. For example, the WordPress mail function returns a value that tells you whether processing worked; it does not confirm delivery. You can read the details in the WordPress developer reference.

In other words, the chain has at least three links. There is the form software, the sending server and the receiving mailbox provider. A message can drop silently at any link. Moreover, when the receiving provider rejects a message, the form rarely knows. The bounce goes to the server mail queue or to an address nobody reads.

So before you call the form broken, find the link where the message gets lost. The sections below follow that order. That way, each step rules out one cause for good.

Could the spam folder or an inbox rule explain it?

Yes. In a surprising number of cases, the answer sits in the spam folder or in an old filter rule. Start with the webmail interface, because some phone apps hide certain folders by default.

  • Scan the spam, junk and quarantine folders.
  • Read your inbox rules one by one; an old rule might delete mail from one sender.
  • Check the blocked senders list for your site sender address.
  • If you forward mail, check the first mailbox in the chain too.
  • On business email, ask your admin about quarantine policies.

Also, forwarding can break authentication along the way. We explain how forwarding works in our email forwarding guide. If the message shows up in spam, the problem is trust, not delivery. In that case, move on to the authentication sections below.

Why is the server PHP mail function unreliable?

Many form plugins send mail through the server mail function unless you change a setting. With this method, the message leaves the web server itself. It does not come from an authenticated mailbox on your domain. Therefore, the receiving provider does not see it as coming from your real mail system.

On shared hosting, hundreds of sites use the same server. For instance, if a neighbor site sends spam, the reputation of the shared IP address drops, and your form suffers too. In addition, some hosts limit or disable the mail function entirely. The form still shows success, yet nothing leaves the server.

In short, sending straight from the server stays fragile even when it works. The solid approach is to send through a real mailbox on your domain with a username and password. That approach uses SMTP, the Simple Mail Transfer Protocol.

How does SMTP fix a contact form not sending emails?

With SMTP, the form logs in to your business mailbox and hands the message over. As a result, the message leaves a server that matches your SPF and DKIM records. The receiving provider can then confirm that the sender really is you. For a contact form not sending emails, this is the most common lasting fix.

On WordPress, you handle this with an SMTP plugin. We do not repeat the setup here; the full walkthrough lives in our WP Mail SMTP setup guide. On a custom site, ask your developer to configure the mail library for SMTP.

That said, SMTP is not a magic switch. The account you send from, the From value and your DNS records still decide the outcome. So run the checks below even after you set up SMTP.

Which sending method carries which risk?

The decision table below compares the methods we see most often. It helps you place your site in a group and judge the risk quickly.

MethodAuthenticationTypical problemOur advice
Server mail functionNone or weakSpam folder, silent rejection, host limitsReplace it with SMTP or an API
SMTP with a business mailboxUsername and password, aligned with SPF and DKIMSending stops after a password changeSound default for small and mid-size sites
Transactional email service (API)Key and domain verificationFails when DNS records are missingHigh volume or many forms
Database storage onlyNot neededEntries wait if nobody checks the dashboardAlways enable it in addition to email

The last row is not a sending method. Instead, it is a safety net that belongs next to every method. We cover it in its own section further down.

Why is it a mistake to put the visitor email in the From field?

This may be the sneakiest cause of all. Many forms place the visitor address in the From field. The goal is to reply with one click. However, your site then sends a message on behalf of, say, a Gmail address.

The receiving provider notices that the message claims to come from gmail.com but did not leave Gmail servers. Consequently, it looks like impersonation. Google asks senders not to impersonate Gmail From headers and notes that impersonation might affect delivery. You can read this in the Google email sender guidelines.

As a result, the message lands in spam or the provider rejects it outright. Also, the problem looks random. Some visitor addresses cause no trouble, while others do. So if you say "sometimes it arrives, sometimes it does not," check this first.

How do you set up the Reply-To field correctly?

The right setup is simple. Your From field always holds a fixed address on your own domain. The visitor address goes into the Reply-To field. Then the message comes from your domain and passes authentication, and when you hit reply, the answer still goes to the visitor.

  1. Pick a dedicated sender address, such as form@example.com, and make it a real mailbox.
  2. In the form settings, put that fixed address in the From field.
  3. Set the sender name to your site name or "Website Form".
  4. Map the visitor email field to the Reply-To header.
  5. Send yourself a test and confirm that reply picks the visitor address.

Also, never use a mailbox that does not exist as the sender. Bounces go to that address. If it does not exist, you never see the problems. If you have not set up mail on your own domain yet, start with our business email on a custom domain guide.

Where do form emails go when SPF, DKIM and DMARC are missing?

SPF is a DNS record that lists the servers allowed to send mail for your domain. DKIM is a digital signature added to each message. DMARC is the policy that tells receivers what to do when those checks fail. When these records are missing or wrong, form mail lands in spam or bounces.

Google asks all senders to set up at least SPF or DKIM. It also asks for valid forward and reverse DNS records and for TLS encryption. Bulk senders need both SPF and DKIM plus a DMARC record. Thresholds and rules can change, so check the current values on the official page.

Microsoft has also announced similar authentication expectations for its consumer mail services. Therefore, these records matter for Outlook recipients as well as Gmail users. We walk through setup in our SPF, DKIM and DMARC setup guide. Here we focus only on the point that matters for forms.

How do you check SPF and DKIM alignment on form email?

The key point is alignment. The domain in the From field should match the domain that SPF or DKIM verifies. For example, if the form sends from your host server and that server is missing from your SPF record, the check fails. So you need to add the actual sending source to SPF.

  1. Open a form email you received and view the original message or full headers.
  2. Find the SPF, DKIM and DMARC results; each one shows pass or fail.
  3. For any failure, note the domain and the IP address involved.
  4. Check whether that IP address appears in your SPF record.
  5. If it is missing, update the record with your DNS admin and test again.

The reverse DNS of the sending server also matters; see our PTR record explainer. If Gmail rejects the message as unauthenticated, our 550 5.7.26 error guide explains the code.

Should you fix this yourself or bring in a professional?

Checking spam, sending tests and fixing the From field are tasks most site owners can handle. However, editing DNS records, storing SMTP credentials safely and changing custom form code take more experience. A wrong SPF record can affect all your business email, not just the form.

Getting these settings right during a build or redesign costs the least. In our business website design process, the sending method, sender address, database storage and test flow are standard items on the pre-launch checklist. That way, on launch day you see the first message actually arrive.

On the other hand, if you only need a diagnosis, the test method below shows you which link fails. Then you can hand that result to your support team or developer, which shortens the fix.

Why should form entries also go to a database?

Email should never hold the only copy of a message. If you also store entries in your site database or dashboard, a lost email does not mean a lost lead. Moreover, the stored entry helps with diagnosis. If the entry exists but the email does not, the problem sits on the sending side.

  • No entry in the dashboard: the form itself fails; a JavaScript error, plugin conflict or spam filter may block it.
  • Entry in the dashboard but no email: the sending method, authentication or the inbox causes it.
  • Entries and emails both exist but some go missing: suspect the From field or a spam filter.

Still, remember that you store personal data. Decide which fields you keep and for how long. Delete old entries on a schedule and disclose this in your privacy notice. This note is not legal advice; ask your legal counsel for details.

How do you test a contact form not sending emails?

A good test is a controlled series, not a single attempt. When you test a contact form not sending emails, write down the time, the address and the result of each try. Then you catch intermittent issues as well.

  1. Fill in the form with your business address and submit it.
  2. Submit it again with a Gmail address, then with an Outlook address.
  3. Note whether each message hits the inbox, the spam folder or nothing at all.
  4. Check SPF, DKIM and DMARC results in the headers of each message.
  5. Confirm whether the dashboard or database created an entry.
  6. Send one test a day for a week to see whether the issue returns.

Also, confirm that the recipient address has no typo. A single wrong letter in the form settings can send every message to a mailbox that does not exist. Teams overlook this simple check more often than any other.

Finally, test from different devices and networks. For instance, a message from your office network may arrive fine while one sent over mobile data trips the spam filter. This gives you a picture closer to what real visitors experience.

Could spam protection block real messages too?

Yes, it can. If you tune bot protection too tightly, it silently drops messages from real visitors. For example, some plugins never turn a suspicious entry into an email and only log it. As a result, the form shows success while you receive nothing.

In that case, look at the protection plugin log or its blocked list. If real messages sit there, loosen the threshold or try another method. We cover balanced protection in our guide to stopping contact form spam. Here we only stress its effect on delivery.

On the other hand, if your form sends lots of spam, your sender reputation takes a hit. In other words, weak protection and overly strict protection end in the same place: real messages fail to arrive.

How do the thank you page and auto-reply affect delivery?

If you send visitors an automatic "we got your message" email, that second email follows the same authentication rules. Also, when a visitor mistypes an address, bounces pile up at your sender address. So keep the auto-reply short and check the sender mailbox often.

A clear on-screen confirmation also stops visitors from sending the same message two or three times. Duplicate messages clutter your inbox and can trigger spam filters. We explain how to build that confirmation in our thank you page design guide.

  • Keep links and images in the auto-reply to a minimum.
  • Do not echo the full visitor message in the auto-reply, since spammers can abuse it.
  • Show the next step and an alternate way to reach you on the thank you page.

Which symptom points to which cause?

The short list below takes you from symptom to cause quickly. However, one symptom can point to more than one cause. Use the list as a starting point, not a final verdict.

  • No messages at all and no dashboard entries: form software, plugin conflict or spam protection.
  • Entries in the dashboard but no emails: sending method, host limits or a wrong recipient address.
  • Everything lands in spam: SPF, DKIM or DMARC misalignment.
  • Some arrive and some do not: the visitor address in the From field.
  • It stopped suddenly one day: a changed SMTP password, a changed DNS record or a full mailbox.

A full mailbox is a surprisingly common cause. If your Google storage fills up, new mail stops arriving; we cover that in our Google storage full guide.

Why does the form stop after a hosting move or domain change?

When you move the site to a new server, the sending source of the form changes too. Your SPF record listed the old server IP address, but it may not list the new one. Consequently, form mail starts landing in spam on day one, and few people connect it to the move.

Likewise, after a domain change the From address may still use the old domain. Also, if the new mail service lacks the DKIM key for your domain, the signature check fails. So add "send a form test" to your migration checklist.

  1. Before the move, note how the form sends mail.
  2. On the new server, enter the SMTP settings and password again.
  3. Update SPF to match the new sending source.
  4. Confirm in the headers that DKIM still passes.
  5. Send a test message every day during the first week.

In short, a move is when forms break most often. Plan these steps ahead and you, not a customer, spot the problem.

What should you update when your business email provider changes?

When you switch business email providers, the SMTP server, port, encryption type and login details all change. A form that keeps the old details cannot log in and sends nothing. Moreover, some plugins log this error only in their own records, so you see no warning.

  • Take the SMTP host, port and encryption type from the official docs of the new provider.
  • Use an app password if the provider requires one.
  • Remove old SPF and DKIM entries after the new provider goes live.
  • If MX records changed, confirm that the recipient mailbox is active on the new service.

Also, some messages may stay in the old mailbox during the switch. Watch both mailboxes during the transition week. We cover the full plan in our business email migration guide.

How do you manage several forms and several recipients?

If your site has contact, quote and booking forms, each one can break on its own. For example, the contact form may use SMTP while the quote form still relies on the server mail function. So one working form does not prove that all of them work.

Start with an inventory of every form on the site. For each one, record the sending method, sender address, recipient address and database storage in a single table. Then you spot the form with a missing setting right away and build your test plan from that table.

  • Connect every form to the same authenticated sender address.
  • Use a shared team mailbox as the recipient instead of a personal inbox.
  • Update the recipient when an employee leaves, or mail goes to a closed mailbox.
  • Consider a transactional email service for high volume forms.

Form design affects delivery indirectly too. Extra fields and vague error messages lead visitors to abandon the form or submit it again and again. We cover lean booking and quote forms in our lead form design guide.

What should you give your developer or support team?

A good report cuts the time to a fix. Instead of saying "the form is broken," share concrete facts. Then the support team skips the guesswork and goes straight to the right layer.

  • Dates and times of test messages and the sender addresses you used.
  • Whether the entry appeared in the dashboard or database.
  • SPF, DKIM and DMARC results from the received messages.
  • The form plugin and SMTP plugin you use, plus recent update dates.
  • The text and code of any bounce message.

However, never paste your password or SMTP credentials in plain text. Share them over a secure channel, only when needed and only with the right person. After the work ends, change the password.

Are other site issues like images and dark mode related to the form?

Not directly, but they belong to the same maintenance habit. Teams that test the form on a schedule spot other weak points early. For example, if form fields become unreadable in phone dark mode, visitors may never fill them in; see our guide on phone dark mode breaking website colors.

Similarly, if you find your images on other sites without permission, our guide on someone using your website images explains what to do. In short, a small monthly checklist catches many silent problems, the form included.

When should you get help to keep your form reliable?

If your contact form is not sending emails after all these steps, or messages keep landing in spam, the problem likely sits in DNS, the server or custom code. Trial and error in those layers can put all your business email at risk.

In that situation, you need a setup that handles the sending method, sender address, authentication records and database backup together. Talha Aslan and team build forms with this checklist as part of our custom website design work and test them with real recipients before launch. We do not promise rankings or guaranteed delivery. Still, closing the known causes up front prevents most problems.

In short, your contact form is one of the most valuable parts of your site. Treat it as a sales channel you test on a schedule, not as a plugin you install and forget.

Frequently Asked Questions

What should I check first when my contact form is not sending emails?
Check your spam and junk folders first, then review your inbox rules. Next, send yourself a test from the form and note the time. If the form stores entries in a dashboard or database, see whether the entry exists. That tells you whether the problem sits in the form itself or in the sending step.
The form says sent but nothing arrives. Is the form broken?
Not always. The success message only shows that the form handed the message to the next step. It does not confirm delivery. The message may drop at the sending server, during authentication or in the spam filter of the recipient. Use dashboard entries, email headers and tests with several recipients to find the failing link.
Why does the visitor email in the From field cause problems?
Your site then sends mail on behalf of a domain it does not own, and receiving providers treat that like impersonation. Google also asks senders not to impersonate Gmail From headers. The right approach is a fixed address on your own domain in the From field and the visitor address in the Reply-To field.
Does setting up SMTP solve the problem on its own?
Usually it is the biggest step, but it may not be enough alone. SMTP sends through your business mailbox with authentication. Still, messages can fail if the From field is wrong, SPF or DKIM records are missing, or the password changed. So test after the setup and check the authentication results in the headers.
Why should I store form entries in a database too?
Because a lost email then does not mean a lost lead; the entry stays in the dashboard. It also speeds up diagnosis. An entry without an email points to sending, and no entry points to the form. Since you store personal data, set a retention period, delete old entries and disclose it. This is not legal advice.
How often should I test my contact form?
We suggest at least once a month, plus after every plugin, theme, hosting or DNS change. Test with your business address and with a Gmail or Outlook address. That way, when a settings change silently breaks the form, you notice within days instead of months, and you limit the number of leads you lose.
  • contact form
  • form email
  • SMTP
  • SPF
  • DKIM
  • DMARC
  • website maintenance
Share:
Talha Aslan

Google Partner digital marketing expert. Hands-on with SEO, Google Ads, web design and e-commerce projects since 2012; every post here comes from that experience.

Next project

Get a quote for your project.

Your brief goes straight to Talha Aslan and team: strategy led by Talha, delivery by an experienced team. We reply the same day and send the scope, timeline and price as a written quote within 1 business day.