+254725682556 +254725052660 info@ziprof.co.ke
Client Area

WordPress

How to Fix WordPress Not Sending Emails (Contact Forms and Password Resets)

If messages from your WordPress contact form never reach your inbox, or the "forgot password" email never shows up, the site itself is usually working fine. The problem is almost always how WordPress sends mail, not the plugin or the form.

Why This Happens

By default, WordPress sends email using PHP's built-in mail() function. On shared hosting, this function is often restricted or unreliable, since it doesn't properly authenticate the message as coming from your domain. Mail servers on the receiving end (Gmail, Outlook, and others) increasingly reject or silently drop unauthenticated mail sent this way. That's why the email looks like it was "sent" from WordPress's point of view but never actually lands in an inbox.

The reliable fix is to stop using PHP's mail() function and instead send WordPress email through SMTP, using a real email account with proper authentication.

Step 1: Set Up an Email Account to Send From

You'll need an email account on your own domain to send through (for example, no-reply@yourdomain.com or info@yourdomain.com). If you don't already have one, create it from your hosting control panel first.

Step 2: Install an SMTP Plugin

  1. In your WordPress dashboard, go to Plugins, then Add New.
  2. Search for an SMTP plugin (there are several well-maintained free options in the WordPress plugin directory).
  3. Click Install Now, then Activate.

Step 3: Configure Your SMTP Settings

Once activated, the plugin will walk you through a setup wizard. You'll need the following details, which match your email account settings:

  • SMTP Host: usually mail.yourdomain.com
  • SMTP Port: typically 465 (SSL) or 587 (TLS)
  • Encryption: SSL or TLS, matching the port above
  • Username: your full email address
  • Password: your email account password

These settings are the same whether your hosting runs on cPanel or DirectAdmin, since they come from your email account itself rather than the control panel.

Send a test email from the plugin's settings page once you've saved your configuration. If the test email arrives, WordPress mail is now working correctly for contact forms and password resets alike.

What to Do If Emails Still Don't Arrive

  1. Check the recipient's spam or junk folder first. This is the most common reason a test email seems to "disappear."
  2. Confirm your domain has valid SPF and DKIM records. Without these, receiving mail servers may still flag your messages as spam even over SMTP.
  3. Double-check that your contact form plugin is set to send to the correct recipient address, and that it hasn't been overridden in the form's own settings.
  4. Make sure the email account password used in the SMTP plugin is current. If you changed it recently, update it in the plugin settings too.

For help with the underlying email account or authentication records, see our guides on creating an email account and setting up SPF and DKIM records.