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.
| What you see | What to check next |
|---|---|
| Form spins, fails validation or shows an error | Submission, browser errors and anti-spam checks before SMTP. |
| Submission succeeds, no matching mail log | Whether 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 error | SMTP credentials, provider authorization and the host's outbound connection rules. |
| Mail log reports sent, inbox is empty | The 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 topFrom 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.
To: leads@example.com
From: Website inquiries <forms@example.com>
Reply-To: the visitor's validated email fieldThese 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 topContact 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.
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 topWPForms 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 topPost 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 topSet 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.
| Check | What to verify |
|---|---|
| SPF | The envelope sender domain authorizes the service actually sending the message. |
| DKIM | The provider signs messages and its published key verifies the signature. |
| DMARC | The 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 topVerify the full contact path before calling it fixed
- 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.
- 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.
- 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.
- 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.
- 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 topWe 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.
A repair is ready to hand over when a real inquiry reaches the right person and their reply reaches the visitor. Keep the evidence with the site's maintenance notes.