Email Deliverability options for WordPress
Last Updated -
Note: This article is related to how your WordPress site sends out email, not your main/personal email service.
Email has been around since the dawn of the internet, however it is also really hard to do well. Spam is so prevalent that it is in everyone's best interest to use a dedicated email provider to ensure optimal deliverability.
By default, WordPress relies on a low level function on a server called mail(); to send out notices to site admins such as pending comments, password resets, and the like.
Our policy is to restrict the volume and velocity of outbound email from our servers. A typical WordPress site should not be sending a high volume of email, Especially when better solutions like the Third Party Services described below exist.
Please consider the following:
To increase the performance of email service we recommend you utilize a third party, and NOT to rely on the servers mail() function to deliver email. Furthermore it is our policy to not allow any bulk sending of any kind, such as for email marketing, newsletters, etc.
If your site relies on email deliverability, such as for purchase receipts, digital download links, or something else, we STRONGLY advise you to utilize a Third Party Service as described below.
Improve Email deliverability from WordPress
The first thing you will want to do is utilize a WordPress plugin that will direct WordPress to use a different method for sending email. This can be generic SMTP (use's your email service) or use a dedicated email company.
- (Good) SPF DNS Record: This allows our relay service to send messages on your domains behalf so that email@example.com will work as a from address.
- If a SPF Record is already created: Contact your DNS provider and have them append include:relay.mailchannels.net to your current SPF record.
- If no SPF Record is present: Contact your DNS provider and have them add a TXT record for: v=spf1 a mx include:relay.mailchannels.net ?all
- (Better) SMTP: This option will send mail via your gmail, yahoo, or domain registrar email system.
- Download the SMTP plugin and install. https://wordpress.org/plugins/easy-wp-smtp/
- Options screen: Use the SMTP option, NOT the PHP mail() option.
- Options screen: Enter your mail server details.
- Test and you are done
- (Best) 3rd Party services: Use a dedicated email service like Sendgrid or SparkPost
- Sendgrid. Download the plugin https://wordpress.org/plugins/sendgrid-email-delivery-simplified/ and configure following their instructions, requires a paid subscription. Sendgrid has a guide here.
- SparkPost. Download the plugin https://wordpress.org/plugins/sparkpost/ and configure following their instructions, the free account allows 100k free emails per month. If you are migrating from Mandrill they have Mandrill migration instructions here.
- Mailgun. Download the plugin https://wordpress.org/plugins/mailgun/ and configure following their instructions, requires a subscription but there is a free tier still available. Mailgun has instructions here.
Options we DO NOT recommend
- Mandrill. Mandrill is a three year old plugin that is NOT PHP7 ready. We once recommended this plugin, but can no longer do so.
In a nutshell, the default email system in WordPress is not optimal as it is designed to work on the widest variations of platforms and servers. If email is important to you or your business you should strongly consider using a service to handle it that is dedicated to the task