Skip to content
Get help
Home/Bug Fix Library/WordPress Contact Form Not Sending

WordPress Bug Fix Library

WordPress Contact Form Not Sending

Fix WordPress contact forms that do not send email because of SMTP, DNS, REST/AJAX, spam filtering, PHP mail, JavaScript or plugin conflicts.

Updated 2026-09-16

Quick answer

A successful form submission and successful email delivery are two different steps. Diagnosis should confirm whether WordPress accepted the form, whether a mail message was generated and whether the receiving server accepted it.

Symptoms

  • Form shows success but no email arrives.
  • Submission fails with AJAX/REST or JSON errors.
  • Messages go to spam or are rejected.
  • Only certain recipients/domains fail.
  • The form stopped after DNS, SMTP, plugin or hosting changes.

Common causes

The same visible WordPress error can have several causes. A reliable fix starts by matching the symptom to logs, request behavior and recent changes.

  • Hosting PHP mail is blocked or unreliable.
  • SMTP credentials/API token invalid.
  • SPF, DKIM or DMARC alignment problems.
  • Form AJAX/REST request blocked by security or cache rules.
  • Plugin conflict or JavaScript prevents submission.

Safe diagnosis

  1. Confirm whether the form submission reaches WordPress.
  2. Check mail logs or SMTP provider events for acceptance/rejection.
  3. Validate sender domain authentication and From/Reply-To configuration.
  4. Inspect browser Network/console errors for AJAX forms.

Production safety: create a recovery point before changing code, plugins, database values or server configuration. Business-critical WooCommerce sites should avoid random deactivate/update experiments during active traffic.

How the issue is fixed

  • Configure authenticated SMTP or transactional email correctly.
  • Correct SPF/DKIM/DMARC and sender identity where applicable.
  • Repair blocked REST/AJAX requests.
  • Fix form/plugin conflicts and verify delivery with controlled test messages.

Avoid this shortcut: Do not solve deliverability by spoofing a visitor’s email address in the From header. Use your domain as From and the visitor as Reply-To.

When to request expert WordPress bug fixing

Professional troubleshooting is useful when the site is business-critical, the error returns after a temporary fix, wp-admin is unavailable, the failure began after a complex update/migration, or you cannot identify the responsible code from logs. WP•FIX focuses on the smallest safe change that restores the failing path and explains the root cause.

Trace the message through three separate checks

CheckpointEvidence to look forNext action
Browser → WordPressThe form request and its response in the Network tab.If blocked or failing, investigate the form endpoint before changing mail settings.
WordPress → mail providerA matching SMTP or email API event.No event suggests a generation or transport configuration problem.
Provider → recipientAccepted, deferred, bounced or rejected status.Follow the provider response; acceptance is not a guarantee of inbox placement.

Check the request in your browser

Open Developer Tools → Network, submit a harmless test message and inspect the Fetch/XHR request. A 403 response can indicate a security rule; a 500 response needs a server-side error check. A 200 response still needs its response body checked for an application-level error. Do not post full request logs publicly: they may contain personal data or tokens.

Use a sender you control

In Contact Form 7, review the Mail tab. Use a sender on the site’s domain and the visitor’s address as Reply-To. Adapt the example to an address and domain authorized by your mail provider:

From: Website <[email protected]>
Reply-To: [your-email]
To: [email protected]

[your-email] is an example CF7 mail-tag: it must match the email field in your form. Elementor and other form plugins use their own dynamic-field syntax.

Interpret the mail provider’s response

An authentication failure points toward credentials or sender authorization. A connection timeout points toward transport, port or network restrictions. A policy rejection may involve the sender domain or recipient rules. Use the actual response code and provider documentation before changing DNS.

Verify the full result

Test a real submission to the intended recipient and, where practical, a second mailbox provider. Confirm receipt, Reply-To behavior and any stored form entry. Use test data, then remove it. Avoid sending repeated test messages to real prospects.

Reference: Contact Form 7: setting up mail.

FAQ

Why does the form say sent when no email arrives?

The website may have accepted the submission even though the mail transport or receiving server later rejected the message.

Do I need an SMTP plugin?

Authenticated SMTP or an email API is often more reliable than unauthenticated PHP mail, but the correct setup depends on the hosting and provider.

Can Cloudflare block a contact form?

It can block AJAX/API submissions through WAF or bot rules, but it does not directly deliver the email.

Can you fix Contact Form 7, Elementor Forms or Gravity Forms?

Yes. The troubleshooting model applies to the submission endpoint and mail transport regardless of the form plugin.

Need this WordPress issue fixed?

Send the URL, error message and what changed immediately before the problem started.

Request troubleshooting

Professional WordPress troubleshooting

Need this issue fixed on a live site?

Send the site URL, exact symptom and what changed before the problem started. The dedicated bug-fix intake keeps technical repair requests separate from malware incidents.

Do not send passwords or hosting credentials in the form. Access is requested separately only if needed.

Your next step

Tell us what
needs attention.

Start with the site URL and what you are seeing. The WP Fix team will review the details and reply by email.

  1. We clarify the issue and the outcome you need.
  2. We confirm scope, availability and price.
  3. We agree on access and the work before making changes.

No passwords needed to start. Timing depends on the issue and current availability.

About: WordPress Contact Form Not Sending

Please do not include passwords or access keys. We use your details to respond to this enquiry. Web3Forms processes the submission.