Class DeterministicSpamClassifier
- Namespace
- MailFathom.Application.Spam.Signals
- Assembly
- MailFathom.Application.dll
Reaches a verdict from what a message already carried, with no scanner, no network, and no model.
public sealed class DeterministicSpamClassifier
- Inheritance
-
DeterministicSpamClassifier
- Inherited Members
Remarks
This is the whole of the working feature without a sidecar deployed. Mail that reaches an IMAP mailbox has usually
been scored already: the receiving server recorded SPF, DKIM, and DMARC outcomes in Authentication-Results,
ARC preserved them across the forwarding hops where the first two legitimately break, the provider wrote its own
verdict into an X-Spam-* header, and where it decided the message was junk it filed it in the folder it
advertises for that. Every one of those is a fact from the moment it mattered, with network context nothing after
delivery has.
What decides the verdict is deliberately narrower than what is recorded. A provider's own verdict decides, and a junk-folder placement outranks it because that is a decision somebody already acted on. An authentication failure does not: a DMARC failure is something the receiving server saw and chose to deliver anyway, and turning it into a spam verdict here would file mail the operator's own provider decided to accept. It is recorded as its own signal so a reader can see it, which is what the record is for.
Methods
- Read(SpamHeaderFacts, MailFolderAlias, bool)
Reads a verdict out of one message's headers and where the mailbox filed it.