Class SenderAuthentication
- Namespace
- MailFathom.Domain.Emails.Authentication
- Assembly
- MailFathom.Domain.dll
What the receiving mail server established about one message's sender.
public sealed record SenderAuthentication : IEquatable<SenderAuthentication>
- Inheritance
-
SenderAuthentication
- Implements
- Inherited Members
Remarks
Every message carries one of these, including the messages nothing could be established about: not established is a verdict here rather than a missing value, because a deployment whose provider publishes no results has to be able to tell that apart from mail whose sender was checked and failed.
Two conclusions live here and they are not the same one. Outcome answers whether an identity
authenticated, which is a fact about whoever handed the message over. AuthorAuthentication answers
whether the author a mail client displays authenticated, which is what an impersonation attempt exists to get wrong.
A relay, a mailing list, and a delivery provider all authenticate as themselves while carrying somebody else's
From, so the two disagreeing is an ordinary state of legitimate mail rather than a contradiction.
One of two readings produced this, and Source says which. The first is a header written by the
one server the account trusts, which is the only party in the chain that observed the connection; everything it
records was read back out of that header. The second runs only where no such statement was available, and verifies
the message's own DKIM signatures against the keys their domains publish — a cryptographic identity reached from the
stored bytes and one DNS lookup. Neither reading evaluates an SPF policy, computes an organizational domain,
consults a public suffix list, or reasons from a Received chain.
Every domain here is personal data. No log line, metric, or exception message may carry one; the occurrence identity, Outcome, and AuthorAuthentication are what those may report.
Properties
- AuthenticatedAuthorDomain
Gets the domain of the displayed author where it authenticated, or null.
- AuthenticatedBy
Gets which check established AuthenticatedDomain, or none where nothing did.
- AuthenticatedDomain
Gets the domain that authenticated, or null where none did.
- AuthorAuthentication
Gets what was established about the author the message displays, which is a separate conclusion.
- DkimDomain
Gets the domain of a DKIM signature that verified, or null where none did.
- Dmarc
Gets the DMARC result the trusted header reported, or that it reported none.
- FromDomain
Gets the domain the message displays as its sender, or null when it wrote no usable one.
- Outcome
Gets what was established about the identity that handed the message over.
- Source
Gets who reached this verdict, which decides what the rest of it is worth.
Methods
- Authenticated(IReadOnlyList<SenderDomain>, IReadOnlyList<SenderDomain>, SenderDomain?, DmarcOutcome)
Records the identities the receiving server verified.
- Failed(SenderDomain?, DmarcOutcome)
Records that the receiving server checked an identity and it did not hold.
- LocalVerificationFailed(SenderDomain?)
Records that this deployment checked a DKIM signature itself and it did not verify.
- LocalVerificationNotEstablished(SenderDomain?)
Records that this deployment verified what it could and established nothing.
- LocallyVerified(IReadOnlyList<SenderDomain>, SenderDomain?)
Records that this deployment verified a DKIM signature itself, no trusted server having said anything.
- NotEstablished(SenderDomain?, DmarcOutcome)
Records that nothing was established about a message's sender.