-
-
Notifications
You must be signed in to change notification settings - Fork 378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failing to parse some office 365 authentication results. #527
Comments
Why can't developers properly adhere to the specs? 😢😭 |
This is related to #490 In both bug reports, there are multiple domain tokens that are unattached to anything, they are just hanging around in the value. I was thinking that the "mydomain.com" after the
If the first "mydomain.com" is the issue #490 has the exact same problem... |
Anyway, the reason this particular header value fails is due to an empty property value ( I've emailed a few devs that I know are on the Office365 team, so we'll see what they say - but in case they don't, how are you handling this? What makes the most sense? |
It worse than i though... In my particular use case we only really care about the dkim/spf/dmarc status and we get the other bits of information from other sources. On monday im goingto check through my logs just to be sure that there is not other O365 auth results that are not parsing but fingers crossed this is it. |
@The-Nutty Just to verify, but can you confirm that the domain tokens ("mydomain.com") that appear in those 2 locations are both the same domain? I'm assuming they are. My guess is you probably don't have the email (or original header) for issue #490 anymore so probably can't verify that the domains were the same there, but if you miraculously still have that, it would be nice if that were confirmed as well. Based on the modified header that was included in the bug report:
... my guess is that "receivingdomain.com" was not identical to "domain1.com", but that would be useful info if you've got it. What I'm wondering is if the O365 code that constructs this header is maybe generating multiple (mostly? valid) Authentication-Results headers and then concatenating them together. For example, maybe each of SPF, DKIM and DMARC validators are independently creating Authentication-Results headers: SPF (missing an
DKIM:
DMARC:
And then some other code is just concatenating them together, not taking into consideration that each subroutine can/does/might add an I don't know, it's just a theory... but seems plausible? P.S. The Office365 guys got back to me this past Friday with some follow-up questions, so it seems like they are looking into this. |
Another possibility is that the code that generates the Authentication-Results header was written to conform to an early draft of the spec that was changed before being accepted by the IETF. |
Okay, so just read thru issue #490 again and you already explained that domain.com/domain1.com were the domains that the message was DKIM signed by, so in that particular case (i.e. the dkim method token), at least, the multi-domain value separated by the
(If it wasn't signed, why does it have 2 domains?)
(How would SMTP "HELO" from 2 different domains?)
(How would there be 2 different MAIL FROM domains?) |
Sorry for not getting back sooner,
Yes they are the same domain
As for your theory it seems valid.... Hopefully you get something useful from the O365 team.... I cant see anything else that looks more broken than the examples i have given, if it would use useful to have some un redacted versions i can privately email them to you. |
@The-Nutty thanks for getting back to me. |
I've added a new property to stick the You'll now be able to do this to get that value: string srvid = authres.Results[1].Office365AuthenticationServiceIdentifier; |
Describe the bug
When using the AuthenticationResults.TryParse/Parse method the following authentication results generated by office 365 fail to parse
spf=temperror (sender IP is 1.1.1.1) smtp.helo=tes.test.ru; mydomain.com; dkim=none (message not signed) header.d=none;mydomain.com; dmarc=none action=none header.from=;
Platform (please complete the following information):
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It should pass the Auth Results and output Parsed accordingly.
The text was updated successfully, but these errors were encountered: