Table of Contents

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.