A professional services firm contacted us because multiple staff members were getting bounce-back errors when sending emails to clients with Yahoo email addresses. The non-delivery reports mentioned a policy violation but gave no clear explanation of what was wrong. SPF, DKIM, and DMARC authentication were all passing, yet Yahoo was still rejecting the messages. Here is what caused it and how to fix it.
Symptoms
When sending emails from Microsoft 365 (Outlook) to recipients with Yahoo or other external email addresses, the sender receives a non-delivery report (NDR) with one of the following errors:
550 5.0.350 Remote server returned an error -> 554 Message not allowed - [PH01] Email not accepted for policy reasons.
You may also see variations such as:
550 5.7.1 [TSS04] Messages from [IP] temporarily deferred due to unexpected volume or user complaints
421 4.7.0 [TSS] Messages from [IP] temporarily deferred - 4.16.55. Please refer to https://senders.yahooinc.com/error-codes
Common characteristics of this issue:
- Multiple staff members are affected, not just one sender
- The problem is specific to certain recipient domains (Yahoo, AOL, sometimes Gmail)
- Emails to other recipients (Outlook.com, corporate domains) deliver successfully
- The bounce-back mentions “policy reasons” without specifying the exact cause
- SPF, DKIM, and DMARC may all show as “pass” in the email headers, yet the email is still rejected
Affected Software
- Sending Platform: Microsoft 365 (Exchange Online)
- Affected Recipients: Yahoo Mail, AOL, and other providers with strict email authentication requirements
- Related Services: DNS (SPF, DKIM, DMARC records), any third-party email sending services (MailChimp, Postmark, etc.)
Cause
Yahoo, Google, and other major email providers have progressively tightened their email authentication requirements. Since early 2024, Yahoo requires all bulk senders to have properly configured SPF, DKIM, and DMARC records. Even for low-volume senders, weak DNS authentication settings can cause emails to be rejected.
The most common causes of this rejection are:
- DMARC policy set to “none”: A DMARC policy of
p=nonetells receiving servers to take no action on unauthenticated emails. Yahoo and Gmail now view this as a signal that the domain may not be properly secured, and may reject or quarantine messages from domains with weak DMARC policies - SPF set to soft fail (~all): A soft fail SPF record (
~all) suggests that emails from unlisted senders are “probably not legitimate” but does not instruct recipients to reject them. Strict providers prefer a hard fail (-all) - Missing or misconfigured DKIM signing: If DKIM is not enabled for your domain in Microsoft 365, emails may fail integrity checks at the recipient’s end
- Third-party services sending as your domain: If you use services like MailChimp, Postmark, or a website contact form that sends as your domain, these must be included in your SPF record and have DKIM signing configured
Resolution
Step 1: Check Your Current DNS Records
Before making changes, check your current email authentication setup. Use a tool like MXToolbox or DMARCLY to look up your domain’s SPF, DKIM, and DMARC records.

Step 2: Update Your DMARC Record
Your DMARC record is a TXT record in your domain’s DNS. If your current policy is p=none, update it to p=quarantine as a starting point.
Current (weak):
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
Updated (recommended):
v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com
After monitoring for a few weeks and confirming no legitimate emails are being quarantined, you can tighten this further to p=reject:
v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com
The rua tag specifies where DMARC aggregate reports are sent. Use a dedicated mailbox or a DMARC reporting service to monitor these reports.
Step 3: Update Your SPF Record to Hard Fail
If your SPF record ends with ~all (soft fail), change it to -all (hard fail):
Current (soft fail):
v=spf1 include:spf.protection.outlook.com ~all
Updated (hard fail):
v=spf1 include:spf.protection.outlook.com -all
Make sure all legitimate sending services are included in your SPF record before switching to hard fail. Common includes:
include:spf.protection.outlook.com(Microsoft 365)include:servers.mcsv.net(Mailchimp)include:spf.mtasv.net(Postmark)include:_spf.google.com(Google Workspace)
Step 4: Enable DKIM Signing in Microsoft 365
If DKIM is not already enabled for your domain:
- Sign in to the Microsoft 365 Defender portal
- Navigate to Email & collaboration > Policies & rules > Threat policies > Email authentication settings > DKIM
- Select your domain
- Toggle Sign messages for this domain with DKIM signatures to Enabled
- If prompted, add the CNAME records shown to your DNS and then enable DKIM
Step 5: Verify and Monitor
- After updating DNS, wait 24-48 hours for propagation
- Send a test email to a Yahoo address and confirm delivery
- Use MXToolbox DMARC Lookup to verify your records are correct
- Monitor DMARC aggregate reports for any legitimate emails being blocked
- If using a DMARC reporting service like DMARCLY, check the alignment charts to ensure DMARC, DKIM, and SPF are all showing as aligned
Important Notes
- Do not jump straight to
p=reject. Start withp=quarantineand monitor for at least two weeks. If you have third-party services sending as your domain that are not properly authenticated, a reject policy will block those emails entirely - Identify all third-party senders before changing SPF. Ask your team whether any services send email as your domain (marketing platforms, CRM systems, website forms, scanners). Each one needs to be included in your SPF record or configured with DKIM signing
- SPF has a 10 DNS lookup limit. If your SPF record includes too many services, it can exceed the limit and fail validation. Use MXToolbox SPF Lookup to check your lookup count
- These changes improve your overall email security posture, not just Yahoo deliverability. Properly configured DMARC, SPF, and DKIM protect your domain from being spoofed in phishing attacks
- If emails are still bouncing after making these changes, check Yahoo’s Sender Error Codes page for the specific error code in your NDR
Related Resources
- Yahoo: Sender Best Practices
- Yahoo: Sender Error Codes
- Microsoft Learn: Set up DKIM signing in Microsoft 365
- Microsoft Learn: Set up SPF to help prevent spoofing
- Microsoft Learn: Use DMARC to validate email
- Fix: “550 5.0.350” Attachment File Type Not Allowed
- Fix: AgentBox (Reapit) Emails and EDMs Not Being Received
If you need help fixing email deliverability issues or configuring your domain’s email authentication records, get in touch with our team.