Table of Contents

Interface ISpamScanner

Namespace
MailFathom.Application.Spam.Scanning
Assembly
MailFathom.Application.dll

Scores one whole message against a scanner's rule corpus.

public interface ISpamScanner

Remarks

The port is application-owned and narrow on purpose. It takes the raw RFC 822 message and answers with a score, a threshold, the names of what fired, and the corpus those came from; no protocol type, socket type, or scanner vocabulary crosses it in either direction. What sits behind it is a deployment decision, and the deployment that registers nothing is the default — the deterministic stage works alone, so an unimplemented port costs a classification its second opinion and nothing else.

An implementation sends the whole message to a scanner, which is a processing decision an operator has to have taken deliberately: the content is personal data and the scanner is a separate process. It reads content that is already stored locally, so it opens no IMAP session and cannot affect a remote \Seen flag, and it must bound its own call — a scanner that stops answering degrades a signal rather than stalling a run.

Methods

ScanAsync(StoredEmailContent, CancellationToken)

Scores one message.