Skip to content

WordPress troubleshooting guide

Contact form not sending email? Trace the missing message

If your WordPress contact form is not sending email, enable its notification, check the recipient and use an authorized site-domain From address with the visitor's email in Reply-To. Test the public form through authenticated sending; if Post SMTP says sent but nothing arrives, trace the message in your provider's logs and the recipient's spam or quarantine.

First check
Correct notification and recipient
From
An authorized address on your domain
Reply-To
The visitor's email field
Finish line
Real submission received and answered

Written and reviewed by Fernando Marcano · October 20, 2026 · Markdown version of this page

Start with the last place you can prove the message exists

Submit a clearly labeled test and record the page, recipient, time and time zone. Use the evidence below to choose the next check. Change one part of the setup at a time so you can identify what fixed it.

Where a contact form email can stop
What you seeWhat to check next
Form spins, fails validation or shows an errorSubmission, browser errors and anti-spam checks before SMTP.
Submission succeeds, no matching mail logWhether the notification is enabled, its conditions and recipient. Confirm logging is active before treating an absent log as proof.
Mail log reports a connection or login errorSMTP credentials, provider authorization and the host's outbound connection rules.
Mail log reports sent, inbox is emptyThe provider's delivery events, then recipient spam, quarantine and mailbox rules.

The WordPress wp_mail reference says a successful return means the sending method processed the request without an error, not that the recipient received it. If password resets and other site emails also fail, use our broader WordPress not sending email guide.

↑ Back to top

From must use your site domain. Reply-To is for the visitor

For form notifications, set From to a real address on your site's domain that your sending provider authorizes. Put the visitor's email in Reply-To so your staff can answer them. Putting a visitor's Gmail or Yahoo address in From makes your server claim to send as a domain you do not control. See Contact Form 7's mail best practices.

Example notification for a site at example.com
To: leads@example.com
From: Website inquiries <forms@example.com>
Reply-To: the visitor's validated email field

These are illustrative addresses. Create or verify your actual sender and use the form plugin's own field syntax for Reply-To.

To is the mailbox that receives the inquiry. It does not need to be on the site's domain. From identifies your site as the sender; Reply-To controls where your reply goes. Test both delivery and the Reply button before handing the form back to staff.

↑ Back to top

Contact Form 7 not sending email: fix the Mail tab first

Open Contact > Contact Forms, edit the affected form and select Mail. Verify To, From and Additional headers against the official Mail tab documentation. Check Mail (2) separately if you use a visitor acknowledgment; it is an additional template, sent only after primary Mail succeeds.

CF7 example with an existing email field named your-email
Form tab email field: [email* your-email]
Mail > To: leads@example.com
Mail > From: Website inquiries <forms@example.com>
Mail > Additional headers: Reply-To: [your-email]

Use the exact field name in your own form. This example assumes example.com is the site domain and forms@example.com is an authorized sender.

Resolve the warning shown beside the affected setting

  • Sender does not belong to the site domainReplace a visitor mail-tag or outside address in From with your authorized site-domain sender.
  • Invalid mailbox syntax or a possible empty fieldCheck the address format and whether an optional form field could leave a required mail header empty.
  • Invalid mail headers or attachment errorsUse one header per line. Check the named attachment exists and fits the upload configuration.

Save and review the CF7 configuration error guidance for the specific warning. After clearing the warnings, submit the published form and confirm receipt.

↑ Back to top

WPForms not sending email? Check the notification, not just the confirmation

In WPForms, edit the affected form and open Settings > Notifications. Enable notifications and check Send To Email Address. If it uses the admin email Smart Tag, confirm the resolved mailbox is still monitored. Use your domain sender in From Email and the visitor's email Smart Tag in Reply-To. Save, then test the embedded form. These fields are documented in WPForms notification setup.

A confirmation on screen and an email notification are separate outcomes. If only certain inquiries disappear, compare the selected form options with any notification conditions and routing rules. Use a test that should satisfy those rules.

Gravity Forms: check the notification event and entry notes

Check that the notification is enabled, its event is valid and routing conditions produce a recipient. Open the test entry and inspect Notes for the notification sending result. Gravity Forms documents these checks in Troubleshooting Notifications. An entry can help preserve the inquiry while you investigate email.

↑ Back to top

Post SMTP shows email as sent but not received: follow it beyond WordPress

In Post SMTP's Email Log, locate your test by time, subject and recipient. Open View to confirm From and To, then Transcript to inspect the sending exchange. The official Post SMTP log guide shows these actions. Use the actual transcript and provider event rather than relying on the sent badge alone.

Acceptance by a sending server and placement in the recipient's inbox are different events. A later rejection, spam filtering or quarantine can explain the gap. Postmark explains acceptance versus inbox delivery.

  • Find the same message in the sending providerMatch recipient, timestamp and message ID when available. Read the delivery event and exact response. Check for rejection, deferral, bounce or suppression before resending.
  • If the destination server accepted it, ask the mailbox administrator to trace itSearch spam, quarantine, forwarding rules and blocked senders. Give the administrator the test's time, recipient and message ID.
  • Compare another destinationTest a mailbox you control at another provider. If it arrives there, focus on the failing destination and its policy. If it fails everywhere, examine the shared sender and sending route.

Use the provider's event to choose your next step. Avoid switching services or repeatedly resending customer inquiries before you know where they stopped.

↑ Back to top

Set up authenticated sending and verify SPF, DKIM and DMARC

Use a single mail route through an SMTP plugin or a supported provider API integration. Follow your provider's host, encryption, port and authorization settings. Do not copy credentials or a port from an unrelated tutorial. Check whether a Force From setting overrides your form's sender; WP Mail SMTP's setup documentation explains that override.

SMTP login authenticates the connection to the sending service. Domain authentication helps the receiver evaluate the message. Google's sender guidelines describe SPF, DKIM and DMARC checks; passing authentication still does not guarantee inbox placement.

Domain authentication checks for the actual sending service
CheckWhat to verify
SPFThe envelope sender domain authorizes the service actually sending the message.
DKIMThe provider signs messages and its published key verifies the signature.
DMARCThe visible From domain aligns with a passing SPF domain or DKIM signing domain.

Use the sending provider's exact DNS records. Inspect a newly received message's authentication results to verify the route you changed. Google's DMARC guide explains alignment and policy rollout. Coordinate with whoever manages company email before changing a policy that also affects staff mail.

↑ Back to top

Verify the full contact path before calling it fixed

  1. Step 1

    Preserve the current setup

    Save the form and mail settings before editing. Keep a current WordPress backup before changes that may need a rollback.

  2. Step 2

    Send a mailer test

    Send a labeled test to the intended business mailbox. Resolve any connection or authorization error before testing the form.

  3. Step 3

    Submit the public form

    Test as a visitor, with ordinary inquiry text. Check every notification branch your team relies on, plus any acknowledgment sent to the visitor.

  4. Step 4

    Match logs to actual receipt

    Confirm the intended mailbox received the same test. Review the sender and authentication results, then reply to verify that Reply-To reaches the test visitor.

  5. Step 5

    Leave a recovery and retest routine

    Record the settings changed and the test evidence. Agree who checks saved entries where available, monitors failures and retests after mail, DNS or form changes.

Add these delivery and reply checks to your WordPress maintenance checklist.

↑ Back to top

We can do this for you

Hire Fer LLC to repair your contact form emails

Fer LLC is a Wyoming, US business operating fer.marketing, founded by Fernando Marcano. We trace CF7, WPForms or Gravity Forms failures, repair notification and sending settings within the agreed scope, and test receipt and replies with your team. Send the form URL, plugin name and a recent test result for a written quote. Fernando does or reviews the work. See our published record on the About page.

  • Trace the failure from the submitted form to the receiving mailbox.
  • Correct the notification, sender and provider setup within the agreed scope.
  • Hand over test evidence, changed settings and a practical retest routine.

Fer LLC, Wyoming, US business · +1 310 734 8943

Fer LLC, Wyoming, US business · +1 310 734 8943

  • Upwork Top Rated
  • 100% Job Success
  • 100+ Upwork projects
  • 20+ years hands-on
  • Fer LLC, a US company
  • Fernando does or reviews every job

Why clients hire us

  • One person accountable

    Fernando does or reviews every job. No account managers between you and the work.

  • Fixed written quote

    Scope and price in writing before any work starts. Rework on our mistakes is on us.

  • Bilingual EN/ES

    Fer LLC (Wyoming), working in English and Spanish. Replies the same business day, 9 AM to 9 PM ET, at +1 310 734 8943.

  • A record you can check

    Upwork Top Rated with 100% Job Success, plus published projects in the portfolio.

Frequently asked questions

Why does my contact form say sent when no email arrives?

The on-screen confirmation and the mail handoff do not prove receipt. Match a real submission to the mail log, then trace its provider event and the destination mailbox. This shows which part of the contact path still needs investigation.

Should the visitor's email go in From or Reply-To?

Use an authorized address on your site's domain in From. Put the visitor's validated email in Reply-To. That lets staff reply to the visitor while the website sends under its own identity.

Will an SMTP plugin fix Contact Form 7 automatically?

It can provide the sending route, but it will not correct the wrong recipient or a broken Mail template. Review the CF7 warning, verify the sender, then test the actual form through to receipt.

Why does the SMTP test work while WPForms notifications fail?

The test checks a different trigger. Review the affected form's enabled notification, recipient and conditions. Then submit that form and look for its own message in the log, rather than treating the mailer test as a full form test.

Can you recover inquiries that never reached my inbox?

Only if a copy exists in saved entries, retained mail logs or another connected system. We can check what is available within the agreed scope. A form success message alone does not mean there is a recoverable copy.

What should I send you for a repair quote?

Send the form URL, plugin name, intended recipient domain and what a recent test showed. A redacted error or log excerpt helps. Keep passwords, API keys and private customer submissions out of the initial message; access can be arranged after scope is agreed.

Can you guarantee every form email will reach the inbox?

No. The receiving system controls filtering. We can correct the setup, trace provider responses and verify real test delivery. The handover should also give your team a way to spot and investigate future failures.

Get your form inquiries to the right mailbox

Send your form URL, plugin name, intended recipient domain and a recent test result. Include a redacted error or log excerpt if available. We will trace the failure, repair the agreed form and sending settings, and verify receipt and replies with your team. Scope and price are agreed in writing before work starts.

Fer LLC, Wyoming, US business · +1 310 734 8943

Hire us to fix my form emails