Yahoo 554 5.7.9: “message not accepted for policy reasons”

Short answer: Yahoo didn't accept the message for policy reasons. Usually it failed authentication (no SPF or DKIM pass, or a DMARC failure) or broke Yahoo's sender rules. Fix SPF, DKIM and DMARC for the domain in your From address, then resend.

Coming: DMARCbis (RFC 9989): pct Is Gone, t=, np= and psd= Are New — Update Your DMARC Record

The bounce looks like this
554 5.7.9 Message not accepted for policy reasons. See https://postmaster.yahooinc.com/error-codes

What it means

554 is a permanent rejection. Yahoo asks every sender for SPF or DKIM, and bulk senders for SPF, DKIM and a DMARC policy. It rejects messages where the domain requires DKIM but the signature is missing or invalid, or where DMARC fails under a reject policy. Malformed headers can trigger it too (an undecodable From or Subject, a domain without DNS records).

How to fix it

  1. Check the From domain below: SPF and DKIM should pass and DMARC should be published.
  2. If the mail came through a newsletter or CRM tool, enable its custom DKIM so it signs with your domain.
  3. Sending as someone else's domain (for example a Yahoo or Gmail address from your own server) always fails DMARC: send from your own domain instead.
  4. Mailing lists should put the list address in From and the original sender in Reply-To; forwarders should use ARC.
  5. Make sure the domain in MAIL FROM and in the From header has A or MX records, and headers are valid UTF-8.

Check your domain now

After the fix, send a test email to see SPF, DKIM and DMARC pass on a real message, then keep an eye on it: free DMARC monitoring shows every service that sends mail as your domain and which ones fail, in plain English.

Rather not touch DNS? I set up SPF, DKIM and DMARC without breaking your other senders, with a before/after report.

Get it fixed on Fiverr

Prefer to do it yourself? Get the step-by-step Fix Kit ($15) – 28-page guide, checklist, 20+ providers.

Other bounce errors