Sending WordPress Emails: Everything You Need to Know

Illustration by Camille Portales Illustration of a dandelion

Are you struggling with how WordPress sends email? Maybe your site’s basic transactional emails for notifications aren’t sending, or maybe you want a way to make WordPress send email for marketing uses or newsletters?

By default, WordPress sends emails using the wp_mail function, which is based on PHP mail. While this method kind of works “out of the box”, it’s really not reliable and often ends with your emails arriving in the spam folder…or even not sending at all.

What’s more, WordPress doesn’t come with a built-in tool to send your own emails beyond its built-in emails for password resets and such, so you’re limited in the types of emails that you can send.

In this post, we’re going to cover all the key points related to WordPress sending emails so that you can fix any email issues on your site and get the functionality that you want. Here’s everything that we’ll cover:

If you already know what you’re looking for, you can click one of the links above to jump straight to a specific section. Otherwise, keep reading to learn more about how to test and configure WordPress email sending functionality.

How to check if WordPress is sending emails

If you’re having problems with your WordPress site’s transactional emails, the first step is to test whether or not your site is sending emails right now. This will alert you to any potential issues (which we’ll also show you how to fix in the next step).

If you’re not familiar with the term “transactional emails”, these are the automatic email notifications for things like password resets and form notifications.

To check and debug issues with WordPress sending emails, you can use the free Check & Log Email plugin.

Once you install and activate the free plugin from WordPress.org, go to the new Check & Log Email menu in your WordPress dashboard.

Enter your email address in the Send a test email field and then click the Send test email button (you can leave the default “standard headers” box checked):

How to check if WordPress is sending email

Now, go and check your email inbox to see if the email arrived. If you don’t see it in your main inbox(es), make sure to check your spam folder, too.

There are three common outcomes here:

  1. WordPress delivered the email perfectly and it showed up in your regular inbox. This is good, as it means WordPress is effectively sending emails.
  2. WordPress delivered the email but it ended up in spam. This means that email sending is enabled on your server, but issues with authentication are causing email providers to flag the email as spam.
  3. The email didn’t show up anywhere. This means WordPress isn’t sending emails in the first place (which might mean that your host has disabled PHP mail).

If you’re dealing with outcome #2 or #3, the next section will show you how to have WordPress send email via a dedicated sending service, which will fix both problems at once.

How to configure WordPress to send emails using SMTP

As I mentioned in the introduction, WordPress uses the wp_mail function (based on PHP Mail) to send its emails by default.

While this method doesn’t require any setup, there are two problems with it:

  1. Some hosts disable PHP mail in the first place, which means your emails won’t send at all.
  2. More importantly, wp_mail lacks any authentication/verification, which means a lot of email service providers will mark emails sent via this method as spam. Because email spam is such a big issue, email providers need to be aggressive in combating it, and one of the best ways is to block emails that lack proper authentication.

The best way to address both problems is to configure WordPress to use a dedicated SMTP sending service. By using such a service, you can make WordPress send email in a more reliable manner and also add the authentication to help your emails arrive in users’ inboxes instead of their spam folders.

Some of the most popular services here are:

  1. SendGrid.
  2. Amazon Simple Email Service (SES).
  3. Mailgun.
  4. Gmail (yes – you can use your Gmail account to send emails more reliably).

Or, some WordPress hosts also offer their own SMTP servers, which can be a reliable option for simple use cases. However, for the absolute best reliability for important emails, you should stick with a dedicated email sending service.

To configure your WordPress site to use one of these dedicated sending services, you can use a WordPress SMTP plugin. There are a lot of popular free WordPress SMTP plugins, but two good options to start are:

  1. Post SMTP
  2. WP Mail SMTP

To set this up, you’ll need to do the following:

  1. Install your preferred plugin.
  2. Choose your preferred sending service in the plugin’s settings.
  3. Add the API key or SMTP server details for your sending service to the plugin’s settings.
  4. Send a test email to make sure everything is working.
WP Mail SMTP plugin

If you need a helping hand here, we’ve written detailed tutorials for some of the most popular email sending services:

If you’re on a budget, using SendGrid is a good option because it’s free for up to 100 emails per day, which is enough for most “regular” WordPress sites.

Once you configure your sending service, you can send another test email and, this time, things should go perfectly according to plan.

How to use WordPress for marketing emails or newsletters

By default, your WordPress site only comes with the ability to send transactional emails. Again, these are the emails for things like password resets, new account confirmations, update notifications, etc.

With the right tool, however, you can also add the ability to send marketing emails and/or newsletters – all without needing to leave your WordPress dashboard.

To add this ability, you can use the free MailPoet plugin.

With MailPoet, you’ll be able to create email opt-in forms and manage your subscriber lists. Then, you can send one-off or automated emails that you build using a simple drag-and-drop editor. And again – the unique thing here is that you’re able to do all of this from your WordPress dashboard.

To help make sure your emails reliably make it to your subscribers’ inboxes, MailPoet also builds in its own email sending service to replace wp_mail. With this sending service, MailPoet will handle delivering and authenticating your emails, which means you can benefit from improved deliverability. It also means that you don’t need a separate email sending service, so you can skip the previous section if you decide to use MailPoet.

How to get started with MailPoet

To get started, you can install the free MailPoet plugin from WordPress.org.

Once you activate the plugin, go to the new MailPoet area in your WordPress dashboard. When you first open the area, MailPoet will launch a short setup wizard to help you configure some important basics:

MailPoet setup to send email

In the setup wizard, make sure to sign up for MailPoet Premium, which is what lets you use MailPoet’s built-in sending service. MailPoet Premium is free for up to 1,000 subscribers, so you’ll only need to pay once your list grows past 1,000 people:

MailPoet premium

Once you’ve activated MailPoet Premium, you can go to MailPoet → Forms → + New Form to create your first email opt-in form. This is a form that your visitors can use to join your mailing list/newsletter:

MailPoet form templates

You can choose from different form types such as pop-ups or in-content forms. Then, you can customize your form using the native WordPress block editor.

Once subscribers have started joining your email list via your form, you can start sending emails to them by going to MailPoet → Emails. You can create newsletters, welcome emails, or latest post notifications.

If you have a WooCommerce store, you’ll also be able to create eCommerce-focused emails, like abandoned cart reminders.

When you choose an email type, you’ll see a bunch of pre-made templates, ranging from simple text-based emails to more stylized designs:

MailPoet email templates

Once you choose your starting point, you’ll be able to customize your email content using a visual, drag-and-drop builder, including inserting dynamic information (like a subscriber’s first name):

MailPoet builder

When you’re happy with how it looks, you can send your email to all your subscribers or just a specific list.

Bonus: Have MailPoet send your transactional emails, too

In an earlier section, we showed you how to use a WordPress SMTP plugin to configure WordPress to send its transactional emails via a dedicated sending service.

If you’re using MailPoet, though, you can skip using a separate SMTP plugin because MailPoet also includes a built-in feature that lets you configure MailPoet to use its sending service for both your marketing emails and your transactional emails.

To enable this feature, go to MailPoet → Settings → Advanced.

Then, find the Send all site’s emails with… setting and set it equal to The current sending method – MailPoet Sending Service:

MailPoet SMTP sending for transactional emails

Once you save your changes, MailPoet will use its built-in sending service to deliver all of your site’s transactional emails.

How to customize and add new WordPress notification emails

If you want some help staying on top of what’s happening on your site, another useful way to work with emails is to configure WordPress to send email notifications for key actions on your site.

This is especially useful if you work as part of a team, as you can set up notifications for actions such as one of your authors publishing a new blog post.

To set this up, you can use the free Better Notifications for WP plugin. This plugin lets you do two things:

  1. You can edit or disable all the default notification emails that WordPress already sends.
  2. You can create your own notification emails using a WYSIWYG editor.

Once you’ve installed and activated the plugin, you can go to the new Notifications area in your WordPress dashboard to control your site’s notification emails. To add a new notification, click the Add New button.

In the Notification For box, you can choose from a long list of actions to trigger a notification email. This includes a ton of different stuff – some examples:

  • New post published
  • Post updated
  • User role changed
  • New category created

You can also choose which user roles to send the email to. For example, you could only send it to admins.

Then, you can enter the email text in the WYSIWYG editor. You can also use the Find Shortcodes button to insert dynamic information in the email:

Better notifications for WP

Once you save and enable the notification, WordPress will start sending emails when your notification trigger is met.

Note – make sure to also use MailPoet or an SMTP plugin (like we detailed above) to make sure your email notifications make it to your inbox.

Make WordPress send email reliably today!

The default way that WordPress sends emails is limited and only works for a small set of transactional emails. What’s more, in many situations, you can’t be confident that your WordPress site will send emails in the first place…and even if it does, those emails might end up in spam.

To check if WordPress is sending emails, you kick things off by using the free Check & Log Email plugin.

If you’re having problems, the best way to improve the reliability of your site’s email is to use a WordPress SMTP plugin and a dedicated email sending service.

Or, if you want to go beyond transactional emails, you can use the free MailPoet plugin to send marketing emails and newsletters without leaving your WordPress dashboard. MailPoet also includes its own built-in email sending service to ensure reliability, along with a feature to enable the service for transactional emails, too (which eliminates the need to use a WordPress SMTP plugin).

Finally, if you want to have WordPress send even more transactional emails, you can also use the free Better Notifications for WP plugin to create your own custom notification emails – just make sure to pair it with a sending service via MailPoet or a WordPress SMTP plugin.

Do you still have any questions about how to work with WordPress sending emails? Let us know in the comments!