PermError (protection.outlook.com: domain of **** used an invalid SPF mechanism)

Bei einem Office 365 Migrationsprojekt stolperte ich über folgenden SPF Fehler:

Authentication-Results: spf=permerror (sender IP is 40.107.1.124)
smtp.mailfrom=KundenDomainXYZ.com; hotmail.com; dkim=pass (signature was verified)
header.d=KundenDomain.onmicrosoft.com;hotmail.com; dmarc=none action=none
header.from=KundenDomainXYZ.com;
Received-SPF: PermError (protection.outlook.com: domain of KundenDomain.com used
an invalid SPF mechanism)

Das interessante war, dass alle anderen Mail-Systeme (Barracuda) etc. die ausgehenden Emails des Kunden als korrekt durchliess – nur die Server von Microsoft (Office 365, Outlook.com etc.) meckerten immer.

Die gängingen SPF Validatoren fanden interessanterweise auch keinen Fehler im SPF Eintrag für die KundenDomäne:

v=spf1 mx ip4:XYZ.XYZ.XYZ.XYZ/32 include:spf.protection.outlook.com include:mail.kundenserverXZY.de ?all

Der Eintrag sollte die Emails vom Mail-Server mit der IP XYZ.XYZ.XYZ.XYZ als valide darstellen, genau wie die von Office 365 und dem on-premise Exchange-Server.

Ursache

Der Fehler bei Microsoft wurde durch die falschen Nutzung des “include:” Attributes in dem SPF Eintrag verursacht. Denn “include:” bedeutet, dass der Server nachschaut, ob es für “mail.kundenserverXZY.de eigene SPF Einträge existieren. Wenn dieser aber nicht existieren, dann wäre das Attribut “a:” korrekt.

Somit wurde der SPF Eintrag korrigiert:

v=spf1 mx ip4:XYZ.XYZ.XYZ.XYZ/32 include:spf.protection.outlook.com a:mail.kundenserverXZY.de ?all

und schon gingen die Emails durch:

Received-SPF: Pass (protection.outlook.com: domain of kundendomainxyz.com
designates 40.107.1.131 as permitted sender) receiver=protection.outlook.com;
client-ip=40.107.1.131; helo=EUR02-HE1-obe.outbound.protection.outlook.com;

Ein Gedanke zu „PermError (protection.outlook.com: domain of **** used an invalid SPF mechanism)“

  1. Awesome!! Thanks from FL, USA 🙂
    I find that spfwizard.net also helped with this, but I found your site first. The difference is between a host server via DNS name (not IP) relaying mail (use a: ) and a host domain (use include: ).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert