Table of Contents

Class SpamScanResult

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

What a scanner answered about one message, bounded in every direction.

public sealed record SpamScanResult : IEquatable<SpamScanResult>
Inheritance
SpamScanResult
Implements
Inherited Members

Remarks

Nothing scanner-specific reaches this type: no socket, no protocol reply, no vocabulary of a particular corpus. What crosses the port is a score against a threshold, the names of the rules that fired, and the identity of the corpus they came from — which is what a provenance record needs and the smallest thing a second implementation would have to be able to produce.

A rule name is the scanner's own identifier and carries nothing from the message, so unlike a signal's observation it is safe to report in telemetry.

Fields

MaximumFiredRules

The greatest number of fired rule names one answer carries.

Properties

Assessment

Gets the score and the threshold, present exactly when the outcome is Scored.

CorpusRevision

Gets the corpus the rules came from, present exactly when the outcome is Scored.

FiredRules

Gets the names of the rules that fired, empty when none did or when nothing was scanned.

Outcome

Gets how the scan ended.

Methods

ContentTooLarge()

Records that the message was too large for the scanner to be sent it.

Scored(SpamAssessment, IReadOnlyList<string>, string)

Records what a scanner answered.

Unavailable()

Records that the scanner did not answer usably.