The contact form works, orders go through, password resets are sent, but customers find the email in their spam or junk folder, or Gmail shows a red "Be careful with this message" banner. Since 2024 Gmail, Yahoo and Outlook check three DNS records on your domain (SPF, DKIM and DMARC) before trusting a message. Mail that fails them is filed as spam, or refused. Here is how to read the verdict and fix it.
SPF: PASS or FAIL, DKIM and DMARC. Each FAIL is one reason it went to spam.mail() from your web host's server, while the From line says your domain. To Gmail that is a stranger's server using your name, so SPF fails.v=spf1 and name every service that sends for you. Two v=spf1 records count as none.google._domainkey). Without it there is no signature to check._dmarc.yourdomain.com starting v=DMARC1. Gmail and Yahoo require one from anyone sending in volume, and its absence counts against you.v=spf1, list each service with its own include: (for example include:_spf.google.com), and end it with ~all. Merge two records into one._dmarc with v=DMARC1; p=none; rua=mailto:you@yourdomain.com. Move to p=quarantine once a couple of weeks of reports show your real mail passing.website@yourdomain.com). Reply-To: the customer's address, so replying still reaches them.| What you see | What it means | Usual fix |
|---|---|---|
| Form emails always in spam | Sent by the web host's PHP mail, SPF fails | SMTP plugin through your mailbox or a sending service |
| "Show original": SPF FAIL or SOFTFAIL | The sending server is not in your SPF record | Add the service's include: to the one SPF record |
| SPF PermError | Two SPF records, or more than 10 lookups | Merge into one record, drop services you no longer use |
| DKIM: none or FAIL | Mail is not signed for your domain | Add the service's DKIM record, then verify it |
| DMARC: FAIL, or no DMARC at all | The From domain does not match a passing SPF or DKIM, or no record | Add a _dmarc record, send From your own domain |
| Red "Be careful with this message" banner | Gmail could not confirm who sent it | All three checks to PASS |
| Outlook or Hotmail bounces with 550 5.7.515 | Microsoft now refuses unauthenticated bulk mail | SPF, DKIM and DMARC, same as above |
p=reject. One forgotten sender (an invoicing tool, a newsletter) would have its mail refused.Most cases are one SMTP plugin and three DNS records. If you are not sure which services send for your domain, the DNS host is confusing, or you would rather not touch it, that is what the box below is for. Related: emails not arriving at all, spam coming in through your contact form.