Not Receiving Form Email Through WordPress - SMTP

WordPress | Updated March 2026

If your WordPress contact forms aren't sending email, the problem is almost always how WordPress tries to deliver mail. By default, WordPress uses PHP's mail() function, which frequently gets blocked by spam filters or rejected by recipient mail servers. The fix is to configure WordPress to send email through SMTP authentication instead.

01. Why WordPress Email Fails

WordPress uses the wp_mail() function to send all email, including contact form submissions, password resets, WooCommerce order confirmations, and plugin notifications. By default, wp_mail() calls PHP's built-in mail() function, which hands the message to the server's local mail transfer agent.

The problem is that emails sent this way often lack proper authentication. The "From" address may not match the server's hostname, there are no DKIM signatures, and the SPF record may not align. Receiving mail servers (Gmail, Outlook, Yahoo) see these messages as suspicious and either send them to spam or reject them outright.

Common symptoms include:

Form submissions disappear - The form shows "sent successfully" but no email arrives. The form plugin thinks it worked because wp_mail() returned true, but the message was rejected downstream.

Emails land in spam - Messages arrive but go straight to the recipient's junk folder.

Intermittent delivery - Some emails arrive, others don't. This usually means the receiving server is sometimes accepting and sometimes rejecting based on reputation scoring.

02. Setting Up an SMTP Plugin

The most reliable way to fix WordPress email is to install an SMTP plugin that overrides the default wp_mail() behavior. The most popular option is WP Mail SMTP by WPForms (free version works fine).

  1. Install the plugin - In WordPress admin, go to Plugins > Add New, search for "WP Mail SMTP," install and activate it
  2. Open settings - Go to WP Mail SMTP > Settings in the left sidebar
  3. Set the From Email - Use a real email address on your domain (e.g., info@yourdomain.com). This must be an email account that exists in cPanel
  4. Set the From Name - Your site name or business name
  5. Check "Force From Email" - This ensures all WordPress emails use this address, regardless of what individual plugins set
  6. Select "Other SMTP" as the mailer
  7. Enter the SMTP settings - See the next section for the correct values

03. SMTP Settings for Ultra Web Hosting

SMTP Configuration

SMTP Host: mail.yourdomain.com (replace with your actual domain)

Encryption: SSL

SMTP Port: 465

Authentication: On

SMTP Username: Your full email address (e.g., info@yourdomain.com)

SMTP Password: The password for that email account

Tip

You can also use localhost as the SMTP Host with port 25 and no encryption. This works because your site and mail server are on the same machine, but using SSL on port 465 is preferred because it authenticates properly and produces better email headers for deliverability.

If your domain uses Google Workspace or another external email provider, you'll need to use that provider's SMTP settings instead. See our Google Workspace setup guide for those details.

04. Testing Email Delivery

After configuring SMTP, use the plugin's built-in test feature:

  1. Go to WP Mail SMTP > Tools > Email Test
  2. Enter a recipient email address - Use an address at a different provider (Gmail, Outlook) to test real-world delivery
  3. Click "Send Email"
  4. Check the result - The plugin will show a success or failure message with details

If the test succeeds but your contact forms still don't send, the issue is in the form plugin configuration, not in WordPress email delivery. See the next section.

05. Form Plugin Settings to Check

Contact Form 7: Make sure the "From" field in your form's Mail tab uses the same email address you configured in WP Mail SMTP. If they don't match, some SMTP setups will reject the message. Use the [your-email] tag in the "Reply-To" field instead of the "From" field.

WPForms: Under Settings > Notifications for your form, set the "From Email" to your authenticated SMTP address. Put the visitor's submitted email in the "Reply-To" field.

Gravity Forms: In form Notifications, set the "From Email" to your SMTP address. Use {admin_email} or your authenticated address, not the submitter's address.

Common Mistake

Do not set the "From" address to the visitor's email address (the person filling out the form). Your server is not authorized to send email as someone else's address. This will cause delivery failures. Always send "from" your own domain and put the visitor's address in the "Reply-To" header instead.

06. Troubleshooting

SMTP Test Fails with Authentication Error

Double-check the email password. Log into webmail at https://yourdomain.com/webmail with the same credentials to verify they work. If the email account was recently created, wait a few minutes for it to fully provision.

SMTP Test Fails with Connection Timeout

Try switching from SSL on port 465 to TLS on port 587, or try localhost on port 25 with no encryption. If all ports fail, your server's firewall may be blocking outbound SMTP. Contact support to check.

Emails Send But Go to Spam

Make sure your domain has proper SPF, DKIM, and DMARC records configured. See our email authentication guide for setup instructions. Also verify the "From" address matches your domain, not a generic or mismatched address.

WooCommerce Emails Not Sending

WooCommerce uses the same wp_mail() function, so the SMTP plugin fix applies. If WooCommerce emails specifically aren't sending, check WooCommerce > Settings > Emails to make sure individual email types (new order, processing, completed) are enabled.

Still Not Receiving Email?

If you've configured SMTP and emails still aren't arriving, our support team can check the server mail logs to trace where the message is being lost.

Open a Support Ticket

Quick Recap: Fixing WordPress Form Email

  1. Install WP Mail SMTP - Or any SMTP plugin to replace the default PHP mail function
  2. Use your real email - Set the "From" address to an email account that exists on your domain
  3. Configure SMTP - Use mail.yourdomain.com, SSL, port 465, with authentication
  4. Fix form "From" addresses - Send from your domain, put visitor email in Reply-To
  5. Set up email authentication - SPF, DKIM, and DMARC records improve deliverability

Last updated March 2026 · Browse all WordPress articles

  • 120 Users Found This Useful

Was this answer helpful?

Related Articles

Plugins on WordPress

WordPress | Updated 2026 WordPress plugins extend your site's functionality. You can install...

WordPress Error : Sorry, this file type is not permitted for security reasons

WordPress | Updated March 2026 The "Sorry, this file type is not permitted for security...

Create Static Files with your WordPress Install

WordPress | Updated 2026 WordPress generates pages dynamically on every request, which uses...

WordPress error "This file cannot be imported - It may be caused by file_uploads being disabled in your php ini"

WordPress | Updated March 2026 The "This file cannot be imported" error in WordPress appears...



Save 30% on web hosting - Use coupon code Hosting30