Best way to fix or improve Email Deliverability on WordPress (and WooCommerce)

Best way to fix or improve Email Deliverability on WordPress (and WooCommerce)

Do you have an e-commerce site with WooCommerce and your order emails are not getting to your / your client’s inbox? Learn how to fix common issue in WordPress.

Do you have an e-commerce site with WooCommerce and your order emails are not getting to your / your client’s inbox? Have you added a form, set a notification email to your best email address, and nothing reaches your inbox when a form is submitted?

In this guide, we’ll explore common email delivery issues, how to enhance WordPress email deliverability, why WordPress was unable to send the notification email, and available solutions to ensure your emails reach their destination!

You are one of many who have faced this issue with WordPress email deliverability. Normally, that happens when you are using a control panel that does not integrate an email server (so, you may have your domain emails somewhere else and the platform you are using does not have any mail server installed) and/or something is wrong with your DNS configuration!

For example, if you have installed and managed your WordPress site using Runcloud, Gridpane, Ploi, or ServerPilot (naming a few) or when you are using a managed WordPress Hosting like Kinsta, WPEngine, Flywheel, you need to set up a third-party SMTP if you want to be sure that your Transactional emails are sent correctly.

For Transactional email I mean, any email notification that goes out from your WordPress or WooCommerce website. This can be any WordPress notification (like new user registration for example) a form notification (for example, if you set an email notification using Gravity Form, Contact Form 7, or Wp Forms for example), or in the case of WooCommerce, any order email to the customer or to your email address.

In a different scenario, you might choose to host both your website and email on the same server, utilizing control panels like Plesk or cPanel provided by various hosting providers. Alternatively, you could opt for another server control panel that integrates a web server and email server. Another option is to use a service like Siteground, which employs a custom-made control panel.

This configuration places your WordPress site and email services on the same machine. For everything to function seamlessly, proper setup is essential. This includes ensuring that email WordPress Email Deliverability works smoothly ‘out of the box.’ To achieve this, it’s crucial to have DKIM and SPF records correctly configured for your domain for example.

Why am I not getting emails from my WordPress site?

Few reasons why this happens (and you may don’t know that):

  • Control Panel does not support sending your emails – aka your control panel does not have a mail server configured. this is pretty common and is made on purpose, for security and to avoid spam, also normally those kinds of control panels are made to run WordPress smoothly, and not to manage your email hosting.
  • Your DNS and server configuration miss important parameters like DKIM and – or SPF to sign your sent email and avoid spam.
  • You have your domain email hosted somewhere else.
  • Your WordPress email settings are wrong.

When on a control panel like RunCloud, GridPane, Ploi, etc, you don’t have any service for sending emails or you have to install complex software on the server, configure the machine, etc.

Don’t worry, there is a practical solution that is quite common. I highly recommend implementing this approach, especially if your emails play a crucial role in your business operations. For instance, if you’re running a WooCommerce website and need to ensure both you and your customers receive timely notifications about orders, or if your website involves numerous forms and you require prompt access to all the submitted information.

You should use an external SMTP service, together with a plugin that manages your WordPress emails (and maybe, log them).

Here you will find a list of the best plugins to do this and a list of services to use. You can use also your Gmail to send emails out if you are on Google Workspace, but please be aware that there are limits, and the setup is sometimes complicated.

Best SMTP Service for your WordPress Website

Amazon Simple Email Service (SES)

aws.amazon.com/ses/

Amazon Simple Email Service is one of the cheapest, if not the cheaper SMTP services around. Setup is not straightforward, but the platform is reliable, and it can be configured with a dedicated Plugin or any SMTP plugin around.

You have to verify your domain or email first, and if it is a new account, or you are configuring a new region, you have to ask to support to remove the sandbox and be able to send emails to any email address.

After this, you have a great platform that always works to send your WordPress notification emails or WooCommerce orders email out. You can use also it as an email inbox, but I never tried that.

price: from 0.10 $ for every 1000 Emails sent or received.
work with: SMTP for Amazon SES, WP Offload SES Lite, Fluent SMTP, Wp Mail SMTP, SMTP Mailer

Brevo (formerly SendinBlue)

brevo.com

Brevo (formerly SendinBlue) is another service that give you certified email sending, but it offer also a marketing platform, Automation, Chatbot, ads, and more.

With Brevo you can send up to 300 email x day for free, and the official plugin makes this easy to integrate. A paid account can remove the Brevo Logo, optimize the sending time for the marketing platform, and have advanced statistics. If you don’t want to use the official plugin, you can also retrieve the SMTP server, port, login, and password from the backend.

price: Free up to 300 mail / Day.
work with: Brevo own Plugin, Fluent SMTP, Wp Mail SMTP, SMTP Mailer

SendGrid

sendgrid.com

SendGrid is another major player around. It offers both SMTP and Email API, and also a Marketing platform. In the free version it offers up to 100 emails x day, is quite easy to integrate (you have to go through an account and domain verification before to be able to use it) and the configuration on WordPress is made via many different plugins. On their website you can check email delivery with some powerful stats.

price: Free up to 100 mail / Day.
work with: Fluent SMTP, Wp Mail SMTP, SMTP Mailer, Connect SendGrid for Emails

Postmark

postmarkapp.com

Postmark is kindly more limited in the free version to 100 email x months. The service is provided by ActiveCampaign and it supports SMTP and API sending. they do offer an official Plugin so the setup should be straightforward. Paid services like DMARC monitoring, Dedicated IP address, and custom activity retention make Postmark a great platform if you have a high volume of email sending, and knowing that all the emails reach their destination is your priority.

price: Free up to 100 mail / Month.
work with: ActiveCampaign Postmark for WordPress, Fluent SMTP, Wp Mail SMTP, SMTP Mailer

Mailgun

mailgun.com

If you’re looking for a reliable way to make sure all those important emails land exactly where they need to, Mailgun’s SMTP service has got your back. It’s a popular choice, and I totally recommend it, especially if emails are a big deal for your business. Mailgun’s here to make sure your emails sail smoothly, with no stress involved. You have up to 5000 email/month for free for the first month, SMTP relay, and 5 days of log retention. You can use also Email Marketing like other competitors do. They do offer an official plugin to set up your Email smtp on WordPress, so integration is pretty easy and simple.

price: Free up to 5000 mail / Month for the first month. After 1 $ x 1000 Email.
work with: Mailgun for WordPress, Fluent SMTP, Wp Mail SMTP, SMTP Mailer

Now that i listed the most used SMTP service around the web, here i’ m listing the most used SMTP plugins around, that work well with all the services and where you can configure both API or SMTP credential of the most used services around, to be sure that your WordPress Email Deliverability run smooth.

Best WordPress SMTP Plugins

FluentSMTP

wordpress.org/plugins/fluent-smtp/

FluentSMTP is one of the most used SMTP plugin for WordPress. Apart of being able to manage SMTP connection, it has native integration for AMAZON SES API, Gmail Oauth API; Sendgrid API, Mailgun, Postmark, and others. You can set a custom From name and Email Address. It provide also a logging system so you are able to debug and resend emails, it offer also Fallback Email Connection that is pretty useful. I use this on all my WordPress projects and it work pretty well.

WP Mail SMTP

wordpress.org/plugins/wp-mail-smtp/

Wp Mail SMTP is another of the most used SMTP plugin for WordPress. IT supports many SMTP setups like SendLayer, Mailgun, SendGrid and others, the key difference is that the free version does not provide Email Logging, either Amazon SES api (but you can configure it with Smtp credential) or you are not able to resend emails. it has more than +3 Million installs and is pretty stable.

SMTP Mailer

wordpress.org/plugins/smtp-mailer/

SMTP Mailer is much simpler than the other two plugins listed here, but it works very well! you have only SMTP settings, meaning you can use any service that provides you with SMTP credentials. You can set up a custom From Email Address and From Name, and also test your email configuration to be sure everything runs well. It has around 60.000+ active installations.

Configure your SMTP on WordPress without any plugin.

While adding a plugin is the easier way to achieve this, you can also add manually the SMTP Configuration editing your wp-config.php and active theme functions.php. Be sure to add both of the code below in the right place, and replace the wp-config.php data with your value.
What we are doing is basically define in wp-config.php some constants, and later use that on your functions.php file to send all the emails via phpmailer using your custom SMTP settings.

Add your SMTP email settings in wp-config.php

Just go ahead and pop these files right into your WordPress website’s wp-config.php file. We’re being extra cautious here, so we tuck away all those SMTP server settings snugly within the wp-config file. Gotta keep everything nice and secure!

// Your SMTP email settings
define( 'SMTP_username', 'yourbestemail@yourdomain.com' );  // your smtp username 
define( 'SMTP_password', 'your-email-password' );   // your smtp password 
define( 'SMTP_server', 'yoursmtpserver.com' );     // SMTP server address
define( 'SMTP_FROM', 'youremail@example.com' );   // From Email Address
define( 'SMTP_NAME', 'Your Custom From Name' );   //  Custom From Name
define( 'SMTP_PORT', '587' );     // Server Port Number
define( 'SMTP_SECURE', 'tls' );   // Encryption type - ssl or tls
define( 'SMTP_AUTH', true );  // Use SMTP authentication (true|false)
define( 'SMTP_DEBUG',   0 );  // for debugging purposes only, set to 0 to do not debug. 

Change value according to your smtp provider.

Add your custom SMTP function in your functions.php theme file.

You can add the following lines to the theme functions file (or child theme). You can access the Theme function file through the WordPress dashboard > Appearance > Theme Editor.

add_action( 'phpmailer_init', 'custom_email_smtp' );
function custom_email_smtp( $phpmailer ) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = SMTP_server;  
    $phpmailer->SMTPAuth = SMTP_AUTH;
    $phpmailer->Port = SMTP_PORT;
    $phpmailer->Username = SMTP_username;
    $phpmailer->Password = SMTP_password;
    $phpmailer->SMTPSecure = SMTP_SECURE;
    $phpmailer->From = SMTP_FROM;
    $phpmailer->FromName = SMTP_NAME;
}

copy and paste this code like this, you don’t need to change anything, variable will be retrieved from your wp-config.php file for security!

with these two codes snippet, you can add your custom SMTP credentials without using any plugin, but many users will find it easier to integrate your SMTP using one of the plugins above.

WordPress Control Panels Email Server Support

You will find a table listing the most used WordPress cloud control panel, together with specifications if they support email send from your install, and references url with important specifications.

PlatformHave SendmailReference url
Runcloudnot configured by defaulthttps://blog.runcloud.io/send-email-from-php/
Ploinot configured by defaulthttps://ploi.io/documentation/email/how-do-i-send-e-mails
GridPanenonehttps://gridpane.com/knowledgebase/smtp-email/
Cloudwaysnonehttps://www.cloudways.com/blog/wordpress-smtp/
Table of most common WordPress control panels with Email services specs

WordPress Email Deliverability FAQ

wordpress not sending email to same domain

Normally is due to the fact that DKIM is not properly configured. Check with your server provider, or if you are using one of the SMTP services out there, please be sure that your DKIM, SPF, and Dmark configuration is correctly set on your domain DNS.

Why Gmail not receiving emails from WordPress?

The common reason is that your server is not configured to use PHP mail() function, or your DKIM and SPF is not properly configured.

WordPress email sent but not received

Use one of the SMTP plugins listed above, to be sure that you can log each email sent. Also, you have to be sure that your server is sending your emails, and you don’t have any issues with your DKIM and SPF configuration. Use one of the WordPress SMTP available to be able to debug and identify any issue sending email from WordPress.

That’s all for now! if you have any questions please leave me a comment below! also, if you are using any other WordPress SMTP Service or Plugin that is not listed here and you want that to be listed, send me an Email or dm on X, Instagram or Facebook, i will love to update the information above!