WordPress Form Not Sending Emails: SMTP Setup and Test Checklist (WP Mail SMTP vs FluentSMTP)

WordPress form not Sending Emails

WordPress form not sending email usually has an email-delivery problem, not a broken form. WordPress relies on PHP mail by default, which does not authenticate the message through a mail service, so hosts can restrict it and providers can filter or reject it. By the end of this guide, we’ll fix the sending path, authenticate the domain, and test the form. Every missed enquiry is a lost lead.

Quick answer

To fix a wordpress form not sending email, install an SMTP plugin, connect the site to a real mail service, use a From address on your own domain, publish the required SPF/DKIM/DMARC records, and send test messages. SMTP sends mail through an authenticated mail server instead of relying on WordPress’s basic PHP mail path. The form itself may be working; delivery can fail afterward.

Why the form says “sent” but you never get the email

WordPress forms normally pass an email request to wp_mail(). A successful return value means WordPress was able to process the request; it does not prove that the message reached the recipient’s inbox.

The visitor sees a success message, the form may store the submission, but the email can still be rejected or filtered.

The sender address is another common problem. If a form sends as the visitor’s Gmail, Yahoo, or other personal address while the site is on your domain, the message can look like an unauthorized sender. Contact Form 7 and WPForms recommend a From address on the site domain.

SMTP improves the sending path, but correct form settings and domain authentication still matter.

Diagnose first: 5 quick checks before installing anything

1. Check spam, junk, and promotions

Search for the form subject, sender domain, or a phrase from the message. Check Spam or Junk first, then Gmail’s Promotions tab.

2. Check the “To” address

Open the form notification settings and verify the destination address. A typo or outdated mailbox can make a working form look broken.

3. Check the “From” address

Use an address on your website domain, such as forms@yourdomain.com. Do not use the visitor’s submitted address as From; use it as Reply-To instead.

4. Check host email restrictions

Some hosts restrict or disable PHP mail, or expect you to use their SMTP service. If the host blocks outbound mail, changing the form plugin will not fix it. FluentSMTP’s current documentation notes that many hosts disable mail() and recommends SMTP when an API connection is not available.

5. Check whether entries are being saved

If the submission appears in the form’s entry database, the form may be capturing the lead correctly and only the email notification is failing. Keep those entries while troubleshooting so enquiries are not lost.

WP Mail SMTP vs FluentSMTP

Both plugins can replace the unreliable default WordPress mail path with an authenticated mail connection.

AreaWP Mail SMTPFluentSMTP
Setup difficultyGuided, beginner-friendly setupStraightforward setup with a broad provider list
Email loggingDetailed logging is available in paid featuresBuilt-in email logs and resend tools
Supported mailersMany API mailers plus generic SMTPMany API mailers plus generic SMTP
Free vs paid featuresCore delivery is free; advanced logs, reports, routing and backup features are paidPlugin is free; connected providers can have their own limits or charges
Best forSite owners and agencies wanting guided setup and advanced diagnosticsSites wanting a free SMTP plugin with built-in logging

WP Mail SMTP documents a broad mailer list and advanced features such as detailed logs, backup connections, routing, alerts, and reports in its paid offering. FluentSMTP currently documents connections for services such as Gmail/Google Workspace, Microsoft Outlook, Amazon SES, Mailgun, SendGrid, Brevo, Postmark, SMTP2GO, and others, plus generic SMTP; its logs can show failed messages and server responses and can resend mail.

Our recommendation by use case: choose WP Mail SMTP when a less technical owner needs guided setup plus premium logging, alerts, backup connections, or routing. Choose FluentSMTP when you want a free plugin with strong logging and you are comfortable configuring the mail service. Do not run two SMTP plugins at the same time.

Step-by-step SMTP setup

1. Choose a mailer

Pick an email delivery service you can authenticate. When an API-based connection is available, we prefer it over raw SMTP because FluentSMTP’s current documentation describes API connections as more reliable than SMTP connections.

For a local service business, choose the provider you can verify, connect, and monitor.

2. Connect the mailer

Install WP Mail SMTP or FluentSMTP from WordPress. Open its setup screen, select your mailer, and follow the provider’s authentication flow. Depending on the provider, this may use OAuth, an API key, or SMTP credentials.

3. Set a real From email

Use a mailbox on your own domain. A contractor, for example, can send notifications from forms@companydomain.com while using the visitor’s email as Reply-To.

The From address should match the domain authorized with the mail provider. WPForms and Gravity Forms document domain-based From addresses as the safer setup.

4. Force the From email

Enable the plugin option that forces the From email and, where available, the From name. This stops other plugins or themes from changing the sender address.

5. Save and send a test

Use the SMTP plugin’s built-in test email. Confirm the message actually arrives, inspect the sender, and then submit the real form.

Fix authentication so emails don’t land in spam

SMTP handles the delivery connection, but your domain also needs to identify which services are allowed to send mail.

SPF is a DNS record that lists authorized email senders for your domain.
DKIM adds a cryptographic signature to outgoing mail so receiving servers can verify the sending domain.
DMARC tells receiving servers how to handle messages that fail SPF or DKIM alignment and can send authentication reports.

Add these records where your DNS is managed: cPanel, Cloudflare, your registrar, or another DNS host.

Copy the exact SPF and DKIM values supplied by your mail provider. Do not invent a DKIM key.

For example, a Google Workspace SPF record commonly looks like this:

Type: TXT
Host: @
Value: v=spf1 include:_spf.google.com ~all

A DMARC record can start with a monitoring policy:

Type: TXT
Host: _dmarc
Value: v=DMARC1; p=none; rua=mailto:dmarc@example.com

Use an address on the domain you control; your provider may give different instructions.

For DKIM, copy the selector and generated public key from your provider under the requested _domainkey hostname.

Verify the records with a free DNS checker such as MXToolbox or DNSChecker. After DNS changes, allow time for records to propagate.

The test checklist

Copy this checklist:

  1. Send the SMTP plugin’s test email.
  2. Confirm it arrives in the intended mailbox.
  3. Submit the real WordPress form.
  4. Test delivery to Gmail.
  5. Test delivery to Outlook or Microsoft 365.
  6. Test the custom-domain mailbox.
  7. Check Spam, Junk, and Gmail Promotions.
  8. Check the email log and inspect any failure response.
  9. Reply to the notification and confirm Reply-To reaches the visitor.
  10. Test the visitor auto-responder, if enabled.
  11. Submit realistic content, not only “test.”
  12. Re-test after major plugin or WordPress updates.

Do not rely on one successful test. Test against the inboxes the team actually uses.

Form-plugin specific fixes

Contact Form 7

The typical issue is an invalid or mismatched From address or an incorrect mail header. Contact Form 7 recommends a From address on the site domain and using Additional Headers for Reply-To.

Set From to your domain mailbox and Reply-To to the visitor’s email mail-tag. Save the form and submit it again.

WPForms

The common cause is a wrong notification recipient or a From address that does not match the site domain. WPForms separates Send To, From Email, and Reply-To settings and recommends a functioning domain-based From address.

Open Settings → Notifications, verify Send To Email Address, set From Email to your domain, and use the visitor email field as Reply-To.

Elementor Forms

Check the form’s To, From Email, and Reply-To fields. Elementor exposes all three directly in the email settings.

Set To to the business inbox, From Email to your domain, and Reply-To to the visitor’s submitted address.

Fluent Forms

The usual problem is notification configuration. Fluent Forms provides separate settings for Send To, From Name, From Email, Reply To, CC, and BCC.

Verify Send To, use a domain-based From Email, and set Reply To to the visitor’s address. For attachments, test the attachment separately through SMTP.

Gravity Forms

Common mistakes are incorrect recipients and a From address outside the site domain. Gravity Forms specifically recommends using the site domain in From Email to avoid deliverability problems.

Open Forms → your form → Settings → Notifications and check Send To, From Email, and Reply To. Save and test.

Still not working? Advanced causes

Blocked ports: Port 25 may be restricted. SMTP services commonly use 465 or 587 with the encryption required by the provider. Do not guess; use the provider’s documented port and encryption pair.

Hosting email disabled: If the host does not allow PHP mail, connect the site to an authenticated mailbox or transactional email service instead.

Wrong encryption: SSL/TLS must match the port and provider. Correct credentials with the wrong encryption setting will still fail.

Caching or security interference: Security, firewall, optimization, or caching plugins can interfere with form requests. Isolate conflicts on staging where possible.

Google Workspace authentication: OAuth or app-password requirements can affect an existing Google connection. Reconnect using the current authentication method.

DNS not propagated: New SPF, DKIM, and DMARC records may not be visible everywhere immediately. Check the records from more than one DNS tool before changing anything again.

Don’t rely on email alone

Email should notify your team, not be the only place the lead exists. Save every important form submission in the WordPress database, CRM, or another lead system so a temporary email failure does not erase the enquiry.

Connect important forms to a CRM and follow-up automation. Learn more about connecting website forms with your CRM and why follow-up speed can matter more than traffic.

Our guides on why small businesses lose leads after submission and why website visitors are not filling out contact forms cover the next layer.

FAQ

Why is my WordPress form not sending email?

The most common cause is unreliable default WordPress mail delivery. The form can submit successfully while the email fails later because PHP mail is restricted, the sender is unauthenticated, or the message is filtered. Connect the site to an authenticated SMTP or API mailer, use a domain-based From address, publish SPF/DKIM/DMARC, and test delivery.

Why does my WordPress contact form say sent but no email arrives?

A success message confirms that the form submission was processed, not that the recipient received the email. WordPress’s wp_mail() can return success without proving inbox delivery. Check the destination address, spam folder, email log, and SMTP connection before changing the form itself.

Should I use WP Mail SMTP or FluentSMTP?

Use WP Mail SMTP when you want guided setup and may need advanced paid features such as detailed logs, alerts, backup connections, or routing. Use FluentSMTP when you want a free SMTP plugin with built-in email logging and a broad selection of API and SMTP connections. The connected mail provider still controls sending and its limits.

Do I need SPF, DKIM, and DMARC for a WordPress contact form?

Configure the authentication records required by your email provider. SPF identifies authorized senders, DKIM provides a domain-linked signature, and DMARC checks alignment and defines handling for failures. These records help receiving systems verify that your website’s email is legitimate rather than spoofed.

Why are WordPress emails going to spam after SMTP setup?

SMTP fixes the delivery method, but spam filtering also evaluates authentication, domain reputation, message content, recipient rules, and other signals. Use a domain-based From address, configure SPF/DKIM/DMARC correctly, avoid deceptive sender addresses, and test with Gmail, Outlook, and a custom-domain inbox.

Should the form visitor’s email be the From address?

No. Use an authenticated address on your website domain as the From address, then put the visitor’s email in Reply-To. This keeps the message aligned with your sending domain while still letting you click Reply and respond to the person who submitted the form. Contact Form 7 and WPForms both document this pattern.

Closing

A WordPress form that says “sent” but delivers nothing is usually an email-delivery configuration problem, not a broken form. Set up an authenticated mailer, align the From address and DNS authentication, and test the complete path from submission to reply.

Nexora Creation offers a free form-delivery check to identify whether the problem is the form settings, SMTP connection, DNS authentication, or hosting environment. For broader website fixes, see our website development services.