// how to fix
Yahoo "554 5.7.9 Message not accepted for policy reasons" and "[PH01]": causes and fixes
Yahoo refused your email for policy reasons: often failed DMARC or authentication, sometimes suspicious content. How to find the cause and fix it.
What it means
Yahoo Mail (which also handles AOL Mail) accepted the connection from your server but refused the message itself. The bounce usually looks like one of these:
554 5.7.9 Message not accepted for policy reasons. See https://... 554 Message not allowed - [PH01] Email not accepted for policy reasons. Please visit https://...
When the problem is DMARC, the wording usually mentions it, for example a message saying the email was not accepted because of the domain's DMARC policy. The exact text changes over time, so focus on the code and the key words.
"Policy reasons" is a broad answer. Yahoo does not tell you the exact rule, but in practice the causes are few and you can test most of them.
Why it happens
Authentication or DMARC failure
This is the most common cause. DMARC is a DNS record that tells receivers what to do when an email claiming to come from your domain cannot be verified. If your domain has p=reject or p=quarantine and the email fails both SPF and DKIM for your domain, Yahoo refuses it. Typical reasons:
- A new tool (newsletter, CRM, shop) sends as your domain but is not in your SPF and does not sign with DKIM for your domain.
- The email is sent "From" a Yahoo, AOL or Gmail address through another server. Those domains have strict DMARC, so this always fails.
- The email was forwarded or modified on the way and the DKIM signature broke.
Yahoo also requires all senders to have at least SPF or DKIM, and bulk senders to have SPF, DKIM and DMARC together.
Content or links
The [PH01] code is often linked to content Yahoo considers dangerous, such as links to a domain flagged for phishing or malware, or wording that looks like a fake login request. A link shortener or a hacked website in your links can trigger it.
Sender reputation
A brand new domain, a sudden jump in volume or many spam complaints can also lead to policy refusals.
How to check
- Run a Delivmail test. Copy the unique address on the home page (
/) and send it the same email that bounced, from the same tool. The report shows SPF, DKIM and DMARC results, and whether they are aligned with your From domain. It also checks the domains of your links against blocklists and runs SpamAssassin on the content. - Scan your domain. Use
/domain-scannerto read your SPF and DMARC records and spot syntax errors or a missing record. - Check your links. Put the domains you link to into
/blacklists. - Use Yahoo's tools. Yahoo Sender Hub (
senders.yahooinc.com) explains their requirements and error codes.
How to fix it
- Fix authentication first. Add every sending service to your single SPF record and turn on DKIM signing with your own domain in each tool. The DKIM domain must match the From domain (or be a subdomain of it).
- Never send "From" a free mailbox domain (yahoo.com, aol.com, gmail.com) through another server. Use an address on your own domain.
- Keep DMARC realistic. If you just set
p=rejectand things break, go back top=nonewhile you fix the missing services, then tighten again. - Clean your content. Remove links to flagged domains, avoid URL shorteners, use your own domain in links, and make sure your website is not hacked.
- For bulk mail, add a one-click unsubscribe header and keep complaints low.
Check that it is fixed
Send a new Delivmail test with the same message. You want SPF or DKIM passing and aligned with your From domain, DMARC passing, and no blacklisted link domains. Then resend to the Yahoo address that bounced. If you changed DNS records, wait until the change is visible (usually under an hour, sometimes longer) before testing. If the refusal continues with clean results, it is likely reputation: send less, to engaged recipients only, and watch the trend.
Check that it is fixed
DNS changes can take from a few minutes to a few hours. Then send a new test email or scan your domain again.
Related guides
- No DMARC record on your domainDMARC tells receivers what to do with emails that fail SPF and DKIM, and sends you reports. Gmail and Yahoo require it for bulk senders. Start with a safe monitoring record.
- DMARC fails: SPF and DKIM do not match your domainSPF or DKIM can pass and DMARC still fail, because they passed for another domain. Make at least one of them use the same domain as your From address.
- Move DMARC from p=none to quarantine or reject safelyp=none only watches. To really stop fake emails using your domain, move step by step to quarantine and reject, without blocking your own emails.
- Gmail and Yahoo bulk sender requirementsSince 2024, Gmail and Yahoo require large senders to authenticate their emails, offer one-click unsubscribe and keep spam complaints very low. Here is the checklist.
- Gmail bounce "550 5.7.26": unauthenticated emailGmail refused your email because it could not confirm it comes from your domain. SPF, DKIM or DMARC is missing or failing. Here is how to fix it.