Why is Outlook putting my WordPress emails in Promotions?

Because Microsoft has decided it looks like bulk mail. Since a rollout that ran from July to October 2026, Microsoft tags business mail it judges promotional. Where an organisation’s admin has switched the folder on, that mail goes to a new Promotions folder instead of the Inbox. If an order confirmation your customer says “never came” is in Promotions, it was delivered, but the customer may have missed it. It is not spam, and Microsoft documents no opt-out for senders. What a WordPress site controls is how much its mail resembles a newsletter. Keeping receipts apart from marketing mail is the first thing to test, though Microsoft has not said it changes this folder.

Microsoft documents this for Exchange Online, the business side of Outlook. It has not said whether personal Outlook.com and Hotmail accounts get the same folder. The address tells you which kind: @outlook.com, @hotmail.com, @live.com and @msn.com are personal; a company domain is usually a business mailbox.

What Microsoft has said

Microsoft announced the change in Message Center post MC1279093 (13 April 2026, last revised 2 October). Worldwide rollout ran from late July to late October; government clouds follow by late November. Tagging is on by default for every tenant. The folder is separate: mail moves to Promotions only where an admin turns on Bulk moves enabled in an anti-spam policy.

Microsoft’s bulk email documentation adds the mechanics. Since July 2026, all messages Microsoft identifies as bulk “that are promotional in nature” get the Promotions tag, whatever their bulk score (more on that below). Users’ moves into and out of the folder teach the system, which “remembers the action for future messages”. Two exceptions go to the Inbox anyway: senders on an allowlist, including the recipient’s Outlook Safe Senders, and senders in the organisation’s own domains.

Microsoft has not published what makes a message “promotional”, saying only that it “uses both internal and external sources to identify bulk mail”. Everything below about why WordPress mail gets caught is nanoPost’s inference.

Bulk complaint level (BCL)

Microsoft rates bulk mail with a bulk complaint level (BCL), 0 to 9: 0 is not a bulk sender, 1-3 a bulk sender with few complaints, 4-7 a mixed record, 8-9 many complaints. Bulk mail at or above the policy threshold (7 by default, 6 in the Standard preset) goes to Junk; the Strict preset (threshold 5) quarantines it. BCL is set on each message, using what Microsoft knows about the sender. Microsoft doesn’t tie the Promotions tag to BCL: it documents mail going to Promotions even at BCL 0, so the score can’t explain the folder on its own.

Why a WordPress site’s receipts look like bulk (nanoPost’s inference)

Receipts and newsletters can share a sender. Order emails and a weekly offer can go out from the same domain, provider account and IP addresses. That is one possible contributor, but Microsoft hasn’t documented how shared sending infrastructure affects Promotions classification. MailPoet nudges stores toward a shared sender. Under “Send all site’s emails with…”, it labels “The current sending method” as (recommended): that routes every WordPress email, password resets and WooCommerce invoices included, through the method MailPoet uses for newsletters. “The default WordPress sending method” is the default, not the recommendation.

The template reads like a campaign. Stock WooCommerce templates carry no coupons, banners or cross-sells; the “Email improvements” design adds product thumbnails, and a logo is optional. Discount codes, hero banners and upsell blocks come from email-customizer and upsell extensions, so check those.

Bulk headers on one-to-one mail. List-Unsubscribe belongs on list mail, and Precedence: bulk says “bulk” outright. In the versions read on 28 October 2026, the usual WordPress senders add neither to transactional mail:

  • WooCommerce 11.2.1: WC_Email::get_headers() sets Content-Type, Reply-to, and Cc/Bcc when configured; anything else comes through the woocommerce_email_headers filter.
  • MailPoet 5.44.0 adds List-Unsubscribe (and one-click List-Unsubscribe-Post over HTTPS) to its own newsletters only, not to WordPress mail it relays.
  • WP Mail SMTP 4.10.3 and FluentSMTP 2.4.1 pass on what the calling plugin set and add nothing.

If a receipt arrives with either header, a snippet, another plugin or a mailer setting put it there; Post SMTP’s Custom Headers field, for one, applies to every message.

What to change

Today, tell the customer where to look: the Promotions folder, which appears in every Outlook app, phone included. Moving the message to the Inbox is what the system learns from. Adding your From address to Safe Senders goes further, since allowlisted senders skip the folder by Microsoft’s own rule. It has a cost: Safe Senders also bypasses parts of Microsoft’s spam, spoofing and phishing filtering for that address, and Microsoft advises against it in most cases. The narrower fix belongs to their IT admin: a mail flow rule that stops the Promotions tag for one sender.

Test splitting the streams. Separating transactional and marketing mail is established deliverability practice and worth testing; it is not a confirmed fix for this folder. For most WordPress stores, it means receipts through the mailer plugin’s transactional provider on the main domain, and newsletters through a separate provider or stream on a subdomain (news.example.com). Providers document it: Postmark with separate message streams for transactional and broadcast mail; SendGrid with IP pools (separate sets of sending IP addresses), on plans with dedicated IPs; Mailgun with IP pools assigned per sending domain, on Scale plans and above. In MailPoet, choosing “The default WordPress sending method” hands WordPress mail back to wp_mail() and your mailer plugin.

Keep receipts plain. A A transactional email is the automated message a WordPress site sends in response to a single user action – a password reset, an order confirmation, a form receipt – addressed to the user who triggered it. Read full reference → is defined by its trigger; strip the banners, coupons and cross-sells so it looks like one.

No unsubscribe headers on receipts. If you added List-Unsubscribe globally, scope it to marketing mail. The List-Unsubscribe setup guide covers the mail that needs it; the Gmail and Yahoo bulk sender rules cover when you count as a bulk sender.

None of this guarantees the Inbox: Microsoft publishes no criteria, and every recipient’s own folder moves keep retraining the classifier.

How to check

Any Exchange Online mailbox shows the tag in Outlook on the web and Outlook for Windows; reproducing the folder move needs Bulk moves enabled. One trap: the test mailbox must not be on the store’s own domain. Microsoft skips the tag for an organisation’s own domains, so [email protected] to [email protected] in your own tenant shows no tag and proves nothing.

Send a real order email and a real newsletter, then read the headers:

X-Microsoft-Antispam: BCL:0;
X-Forefront-Antispam-Report: ...;SFV:NSPM;...

BCL:0 means Microsoft did not score the sender as bulk; SFV:NSPM means spam filtering marked the message as not spam. A newsletter that reached the policy’s bulk threshold would carry SRV:BULK in the second header. Microsoft documents no header value for the tag, so you can’t confirm it from headers; check the message in Outlook on the web. Microsoft also says a message can be tagged even at BCL:0, so the score is a rough guide, not a test, and a receipt and a newsletter with matching scores are not proof that they are judged together. To test a stream split, compare where receipts land in Outlook before and after the change. For tests across more mailbox providers, see testing inbox placement.

Gmail’s Promotions tab is an older version of the same idea. Google doesn’t publish its criteria either, but the same levers are the ones to try; the WooCommerce email guide covers it for order mail.

Corrections
  • 2026-10-29: an earlier version said BCL scores the sender rather than the message, read that as the likely cause, and called splitting receipts from newsletters the biggest lever. Microsoft sets BCL per message and documents no link between shared sending and the Promotions folder, so the split is now a recommended test, not a confirmed fix. Added the Safe Senders filtering tradeoff.