It’s well known that you should separate your email server and webhosting server. Sometimes you may want to go even further and separate your transactional email server as well. Typically most people use SendGrid, Mailgun, or SendInBlue’s free tier but what if you wanted to host your own on MXRoute? That’s what this tutorial is for.
Step 1: Get an MXRoute account
Obviously, you need an MXRoute account to get started. Sign up here.
You’ll have to link the account to a domain. If you’re like me and want to use one domain for all transactional emails, get a throwaway domain that’s not actually important for anything else.
Step 2: Set up an email account
Obviously, the emails need to come from somewhere. Set up a throwaway email address that you won’t be using for anything else, like email@example.com.
If it’s your first time with MXRoute, here are the steps:
- Login to MXRoute
- Navigate to My Services > Your package > Login to DirectAdmin (note your DirectAdmin URL)
- From there, Email Manager > Email Accounts > Create Account
Once you’ve set it up, you’ll get the POP3/SMTP details for that account. Save it somewhere, with your password as well of course.
Step 3: Install WP SMTP plugin
Install WP SMTP in your website(s), and use options below:
- From Email: firstname.lastname@example.org
- From Name: Pick a name
- Mailer: Other SMTP
- SMTP Host: The address of your MXRoute server, found in Step 2 part 2, most probably arrow.mxrouting.net
- Encryption: TLS
- SMTP Port: 587
- Authentication: On
- SMTP Username: email@example.com (from step 2)
- SMTP Password: LEAVE EMPTY
Step 4: Edit wp-config.php
Your password from Step 3.9 is stored in plain text, so don’t put it in your settings if possible. Instead, save it in your wp-config.php file for better security.
If you’re reading this article you should already know how to find & edit this file. Just add the lines below:
define( ‘WPMS_ON’, true );
define( ‘WPMS_SMTP_PASS’, ‘your_password’ );
Else if you’re unable to edit wp-config.php, go back to Step 3 part 9 and put your password there instead.
Step 5: Add an SPF record to your DNS server
This is important so that your emails are not marked as spam by the recipient’s inbox.
Add the below TXT record to your DNS records, replacing the IP with your MXRoute email server IP, from Step 2:
v=spf1 include:mxlogin.com ~all
If you already have an SPF record, just add in the mxlogin.com component, e.g.
v=spf1 include:_spf.google.com include:mxlogin.com ~all
Step 6: Test!
Visit mail-tester.com and copy the test email address.
Go back to WP SMTP and send a test to the above address.
Your result should come within 20 seconds and should be above 8.0 in order to ensure high inbox deliverability. To raise your antispam score, follow the suggestions listed in the results page.
Lastly, do a final test by signing up as a new user or sending a contact form on your website. If you get the email update in your inbox, congratulations, task complete!