The short version
Mail Xero sends from your domain passes DMARC only when it is DKIM signed with your domain, or sent with a bounce address on your domain. Set up DKIM first: it is the fix that survives forwarding.
1. DKIM with your domain
Xero sends invoices and statements from its own servers. Add your domain under Settings > Email settings and publish the records Xero shows so its mail is signed as your domain.
Xero's own instructions: Xero documentation.
2. SPF
Xero doesn't publish an SPF include to add. DKIM with your domain is how its mail passes DMARC.
Merge it into your one existing SPF record rather than adding a second, and keep the total under 10 lookups: the SPF Check counts them.
3. Check it worked
-
Send a message through Xero to an outside mailbox and open its headers. The
DKIM-Signatureshould showd=example.com, your domain; itss=tag is the selector. - Look the selector up with the DKIM Inspector to confirm the key is published.
- In your DMARC reports, Xero's traffic should now pass DMARC. In DMARCLoop it moves from Known sender, failing to Compliant on the domain's Sources tab.
4. DMARC
If your domain has no DMARC record yet, publish one at p=none with a report address,
so you can see every service sending as your domain before you tighten the policy. Build it with the
DMARC Record Wizard, and see
how to publish a DMARC record for the path to
p=reject: quarantine by day 30, reject from day 60.