Skip to content
Hosting Calculator Site check

News

Order Confirmation Emails Going to Spam? Why It Happens and How to Fix It

Are your e-shop's order confirmation emails landing in spam? The cause is usually infrastructure: SPF, DKIM, DMARC, PTR and server IP reputation. Here's how to diagnose it and fix it properly.

  • 6 min read
  • Eleni Pristai
E-shop order confirmation email landing in the spam folder – SmartHost
In this article
  1. Why it matters
  2. The real causes: what mailbox providers check
  3. How to find out what’s wrong
  4. The real fix: get the infrastructure right
  5. Why plugins alone won’t fix it
  6. Quick checklist
  7. Frequently asked questions
  8. Fix it for good with SmartHost

A customer completes checkout, clicks “Place order” and waits for the confirmation email. Nothing arrives. Or worse, it does arrive but lands in the spam folder, where they will never see it. A few minutes later you get a message: “Did my order go through?” If that sounds familiar, you are not alone.

Order confirmations, invoices, shipping notifications and password resets are some of the most important emails an online store sends. When they end up in spam, the cause is rarely the wording of the message or a missing plugin. It is the infrastructure: your domain’s DNS settings (SPF, DKIM, DMARC) and the reputation of the server IP that sends the mail.

E-shop order confirmation email landing in the spam folder – SmartHost
When the order email goes to spam, the customer never sees the confirmation.

Why it matters

The confirmation email is the customer’s proof that the purchase went through. Without it, they start wondering whether they were charged, whether the order will ship, or whether the store can be trusted. The result is more calls and messages to support, duplicate orders and, above all, customers who don’t come back.

On top of that, major mailbox providers such as Gmail, Outlook and Yahoo have become much stricter in recent years. Messages without proper sender authentication are either filtered to spam or rejected outright. So a store that “worked fine” yesterday can have a problem today without anything changing on the website.

The real causes: what mailbox providers check

When a message reaches Gmail or Outlook, the receiving server first asks a simple question: is this server allowed to send email for this domain? The answer comes from the checks below.

1. SPF: which servers may send

SPF (Sender Policy Framework) is a TXT record in your domain’s DNS that lists the servers and IP addresses allowed to send email on its behalf. If your store sends from a server that isn’t listed, the check fails. An SPF record looks something like this (example only, do not copy as-is):

example.com.  TXT  "v=spf1 ip4:203.0.113.10 include:_spf.example-mail.com ~all"

Common mistakes: two separate SPF records on the same domain (there must be only one), more than 10 DNS lookups inside the record, or the web server missing from the record because only the business email provider was added.

2. DKIM: a digital signature on every message

DKIM (DomainKeys Identified Mail) adds a cryptographic signature to each email. The receiver checks it against the public key you publish in DNS, confirming the message really came from your domain and wasn’t altered in transit. Example record format:

selector1._domainkey.example.com.  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...(public key)"

If WooCommerce emails go out unsigned, or signed by a different domain, you lose one of the strongest trust signals there is.

3. DMARC: the policy that ties SPF and DKIM together

DMARC tells providers what to do when a message fails authentication, and sends you reports on who is sending email using your domain. The record lives at _dmarc.example.com. Example:

_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

Roll it out gradually: start with p=none (monitoring only), read the reports, fix every legitimate sending source, then move to p=quarantine and finally p=reject. Jumping straight to a strict policy without checking first can block your own email by mistake.

4. From-domain alignment

Passing SPF or DKIM is not enough on its own. For DMARC, the domain the customer sees in the From field (for example orders@example.com) must match the domain that passed SPF or DKIM. Very often the store sends with the shop’s domain in From, but the message technically leaves from the server account (for example user@server123.hostname.net). SPF then passes for the wrong domain and DMARC fails.

5. PTR / reverse DNS

The sending server’s IP needs a proper reverse DNS (PTR) record: it should resolve to a real hostname, and that hostname should point back to the same IP. IPs with no PTR, or with a generic provider-style hostname, are treated with suspicion.

6. IP reputation and blacklists

Every IP has a history. If spam was sent from it in the past, or a compromised site on the same server is sending junk, the IP can end up on public blocklists (DNSBLs). On shared hosting the sending IP is shared with other accounts, so its reputation depends on them too. For a store with a steady flow of orders, a separate, controlled sending setup makes sense.

7. WooCommerce sends through PHP mail()

By default, WordPress and WooCommerce send email through wp_mail(), which uses PHP’s mail() on the server. That means no SMTP authentication, often no DKIM, and a bounce address (Return-Path) that doesn’t match your domain. It is the single most common reason order emails land in spam.

How to find out what’s wrong

  • Read the headers. Place a test order to a Gmail address and open “Show original”. You’ll see whether SPF, DKIM and DMARC show PASS or FAIL, and which IP sent the message.
  • Run an email score test. Services such as mail-tester give you a temporary address; send an email there from your store and get a report covering authentication, blacklists and content issues.
  • Check your DNS records. MXToolbox’s free tools check SPF, DKIM, DMARC and PTR, and whether your server IP is listed on known blacklists.
  • Watch your Gmail reputation. Google Postmaster Tools shows your domain and IP reputation and spam rate, once you send enough volume.
  • Read your DMARC reports. The reports sent to your rua address show which servers send mail as your domain and whether they pass.

The real fix: get the infrastructure right

  • Correct DNS records: a single SPF record covering every real sending source, DKIM enabled for the store’s domain, and a DMARC policy that starts at p=none and tightens step by step.
  • Authenticated SMTP instead of PHP mail(), from an address on your own domain (e.g. orders@ or info@), so From, SPF and DKIM all align.
  • Proper PTR and a clean IP: a server with correct reverse DNS, not listed on blacklists and, where it makes sense, a dedicated setup or service for transactional email.
  • Ongoing monitoring: DMARC reports, blacklist checks and test sends after every change to the site or the email provider.

Why plugins alone won’t fix it

An SMTP plugin is simply the connector between WordPress and a mail server. If that server isn’t configured properly, if your DNS lacks SPF, DKIM and DMARC, or if the IP has a poor reputation, the plugin will just send the same emails to the same spam folder. “Anti-spam” plugins or fancier email templates don’t change any of the checks providers run. The problem has to be fixed where it starts: in DNS and on the server.

Quick checklist

  • Is there one SPF record that includes your store’s server?
  • Are emails signed with DKIM for your own domain?
  • Do you have a DMARC record, and do you read its reports?
  • Is the From address on your domain and aligned with SPF/DKIM?
  • Does WooCommerce send via authenticated SMTP rather than PHP mail()?
  • Does the sending IP have a proper PTR and stay off blacklists?
  • Do the headers of a test email show PASS across the board?

Frequently asked questions

Is installing an SMTP plugin enough?

Not by itself. It only helps if it connects to a properly configured mail server and your domain has correct SPF, DKIM and DMARC records.

Why do emails go to spam for some customers but not others?

Each provider (Gmail, Outlook, Yahoo, local ISPs) has its own filters and its own level of strictness. A message with incomplete authentication may get through at one provider and be blocked at another.

Should I set DMARC to p=reject right away?

No. Start with p=none, confirm from the reports that every legitimate source passes, then move on to quarantine and reject.

Fix it for good with SmartHost

When a customer doesn’t receive their confirmation, trust in your store drops. At SmartHost we configure your e-shop’s server for maximum deliverability, so your messages end up where they belong: in the inbox.

Take a look at our e-shop development, managed WordPress hosting, shared hosting, VPS hosting and managed servers services. To have your own store checked, get in touch at +30 210 569 8010 or info@smarthost.gr.