By default, WordPress emails spoof the sender, and if the domain's SPF record doesn't trust the sending server, email providers are likely to mark the emails as spam because of the spoofing.
The best (not easiest) way to ensure trusted email delivery is to send the emails using authenticated SMTP.
Authorizing the WordPress Server to Send Emails
This is the easiest way to get mailboxes to receive emails from WordPress, but it's only one thing email providers check to verify the sender. If the instructions in this section don't fix your problem, try the "Configuring Authenticated SMTP Email in WordPress" section in addition to this section.
WordPress only knows how to use
mail() in PHP, which spoofs the "From" header. If you're sending
From: WordPress <email@example.com> from anywhere, but the SPF (TXT) record for
v=spf1 -all (do not permit any senders), email providers know they shouldn't deliver emails from anyone claiming to be
Your SPF record should look like this already, according to Microsoft:
v=spf1 include:spf.protection.outlook.com -all
include:spf.protection.outlook.com ensures that Outlook is authorized to send emails as your domain.
-all means fail the SPF check for any other sender. This is supposed to prevent anyone, even your WordPress site, from spoofing emails supposedly sent from your domain.
All you need to do to let recipients know to accept emails for your domain sent by your WordPress server is to add its IP address (e.g.
10.0.0.2) to the SPF record like so:
v=spf1 +ip4:10.0.0.2 include:spf.protection.outlook.com -all
Alternatively, if your address (A or AAAA) record happens to be your WordPress site, it is sufficient to add
+a instead of
+ip4:10.0.0.2. This is useful if you ever migrate your site to another IP address and forget to update your SPF record. Example usage:
v=spf1 +a include:spf.protection.outlook.com -all
The SPF record is a TXT record that you need to set at your DNS provider. You should know how to do this already; it's the same interface you used to set up your Outlook DNS records.
Configuring Authenticated SMTP Email in WordPress
Because WordPress only knows how to use
mail() in PHP, you need a plugin to send authenticated SMTP emails. Two popular plugins are WP Mail SMTP and Easy WP SMTP.
If you want WordPress to send emails from
firstname.lastname@example.org, create that email address in Outlook (the email provider for
Then, configure the SMTP plugin (your choice) to send emails from that account.
What this does is delegate email sending to a provider that is already trusted to send emails on behalf of your domain. In your case, that email provider is Outlook.
Since Outlook will then be responsible for sending emails from an Outlook address to another Outlook address, email delivery is much more likely to succeed.