WordPress not sending emails is one of those problems that looks random until you trace how mail is actually being sent.

A password reset works for one user but not another. A contact form submits, but no notification arrives. WooCommerce order emails seem to disappear without any visible error. In practice, WordPress often does send the message, but the delivery path is unreliable.

That is where SMTP becomes relevant. With Must-Have Tweaks, you can route WordPress emails through a proper SMTP server, send a test email, and log outgoing mail so you can see exactly what was sent, to whom, and whether it opened.

Why WordPress emails go missing in the first place

Most WordPress sites rely on wp_mail(). That function is what plugins, forms, WooCommerce, and WordPress core use for things like:

  • password reset emails
  • new order emails
  • contact form notifications
  • new user emails
  • admin alerts

The problem is not usually wp_mail() itself. The real problem is how the server tries to deliver the email after WordPress hands it off.

On many shared hosts, mail is sent through PHP mail. That can work, but it is often the weakest part of the setup. Messages may be delayed, dropped, or flagged as suspicious by the receiving provider. And if the message is technically accepted by the server but later filtered or rejected further down the line, WordPress often gives you no useful feedback.

That gets worse when your domain email authentication is not aligned properly. If SPF or DKIM are missing or mismatched, inbox providers are more likely to treat the message as spam or untrusted mail. From a WordPress perspective, that looks like silence. The user just never sees the email.

What people usually try, and where those options help

When people search for WordPress not sending emails, they usually end up comparing a few approaches.

1. Checking the form plugin first

This is a fair starting point. Contact form plugins are a common suspect because the problem shows up there first.

But if password resets, WooCommerce emails, or admin notifications are also failing, the issue is broader than one form plugin. That points back to site-wide mail delivery.

2. Installing a dedicated SMTP plugin

This is the most common fix, and it often works well. A separate SMTP plugin gives you a focused way to send mail through a real mail server instead of relying on PHP mail.

That said, it is still another plugin to manage. If you also want to inspect sent emails, confirm recipients, or resend a failed message, you may end up adding a second mail logging plugin too.

3. Asking the hosting provider to fix it

Sometimes that is necessary, especially if the server itself is misconfigured. But even then, you still need a reliable way to test and verify what your WordPress site is actually sending.

In other words, host support may help with infrastructure, but it does not replace visibility inside WordPress.

How our approach differs in Must-Have Tweaks

We built Must-Have Tweaks as a modular admin toolkit, not a single-purpose mail plugin. That matters here because email delivery is rarely an isolated problem.

Inside the Mailing section, you can enable:

  • Custom SMTP to route all WordPress emails through your chosen SMTP server
  • Email Logging to log every outgoing wp_mail() call
  • Send Test to verify your SMTP configuration with a real test email

One part of this setup we like is that it replaces the usual two-plugin stack. You do not need one plugin for SMTP and another for mail logs if you are already using Tweaks.

It also fits our modular architecture. Features are independently toggleable, and disabled features add zero overhead. So if you only want SMTP and email logging, you can enable just those parts and leave everything else off.

For site owners trying to reduce plugin sprawl, that is a practical difference, not just a tidy dashboard preference.

How to fix WordPress not sending emails with SMTP

The goal is simple: stop relying on the default mail path and send mail through a proper SMTP server instead.

Step 1: Enable SMTP in Must-Have Tweaks

After installing the plugin, go to Tools > Must-Have Tweaks and open the Mailing tab.

Enable SMTP. You can configure:

  • host
  • port
  • encryption, TLS or SSL
  • username
  • password
  • sender name
  • sender email
  • sender priority
  • reply-to name
  • reply-to email
  • reply-to priority

This gives WordPress a defined, authenticated mail route instead of leaving delivery to the server’s default PHP mail behavior.

Step 2: Use the Send Test button

Once the SMTP details are filled in, use Send Test and send a test email to an address you can check right away.

This matters because it confirms whether your SMTP credentials and delivery path are working before you start troubleshooting WooCommerce, forms, or password resets individually.

If the test email arrives, you have validated the core mail setup. If it does not, you know the issue is still at the mail configuration layer.

Step 3: Turn on Email Logging

Next, enable Email Logging.

This logs every outgoing wp_mail() call to the mail log viewer inside the Mailing settings tab. You can:

  • search by email address
  • search by subject
  • filter by date range
  • sort by date, recipient, subject, and opens
  • open the email content in a popup
  • resend the email to the original recipient

That changes troubleshooting completely. Instead of asking, “Did WordPress send it?” you can verify whether the site generated the email at all.

What email logging helps you confirm

Email logging is useful even after SMTP is working, because delivery problems are not always configuration problems.

Here are a few real-world cases it helps with:

WooCommerce order emails

If a customer says they never got an order email, you can check whether WordPress sent it, what address it went to, and what subject line was used. If needed, you can resend it from the log.

Password reset emails

If users claim reset emails are missing, the log helps you separate two different issues:

  • WordPress never triggered the email
  • WordPress did trigger it, but delivery or inbox placement failed

That is a big distinction when you are troubleshooting support tickets.

Contact form notifications

When a form says “message sent” but the admin mailbox stays empty, the log helps confirm whether the form plugin actually called wp_mail() and what recipient was used.

The point is not that logging solves spam placement by itself. The point is that it gives you evidence, which is what most WordPress email troubleshooting is missing.

SMTP plugin versus Must-Have Tweaks

A dedicated SMTP plugin can absolutely be the right choice if email delivery is the only thing you want to manage.

But many WordPress sites already need a broader set of small admin tools. In that situation, Must-Have Tweaks takes a different approach:

  • SMTP is built in
  • email logging is built in
  • test sending is built in
  • disabled features stay unloaded

So instead of adding a standalone SMTP plugin and then often another logging plugin, you can handle the mail problem inside the same modular toolkit you may already use for other operational tasks.

That is not about claiming every alternative is worse. It is about reducing moving parts when your site stack is already crowded.

Take-home message

If WordPress is not sending emails, the issue is usually not that WordPress forgot how to send mail. It is that the default delivery path is unreliable, untrusted, or invisible when it fails.

A proper SMTP setup gives your site a much better chance of getting password resets, WooCommerce emails, and contact form notifications delivered consistently. Adding email logs gives you the missing visibility to troubleshoot what happened next.

If you want to replace a separate SMTP plugin and mail log plugin with one modular setup, take a look at Must-Have Tweaks or see our docs for the Mailing options.