Table of Contents

Class SpamSignal

Namespace
MailFathom.Domain.Spam
Assembly
MailFathom.Domain.dll

One fact a classification rests on, with where it came from.

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

Remarks

A signal is a fact rather than a contribution to a score: it states what was observed, not how much that observation moved a number. Two deployments that weigh the same observations differently therefore record the same signals, and a verdict can be re-derived from them under different settings without the message being read again.

The observation is text a mail server or a scanner wrote, so it is treated as untrusted input and as personal data: it can name a sending domain, and it is never written to a log or to telemetry. Only the count of signals, their kinds, and their names are safe to report.

Fields

MaximumNameLength

The greatest length a signal name may carry.

MaximumObservationLength

The greatest length an observation may carry before it is shortened to it.

Properties

Kind

Gets what kind of fact the signal states.

Name

Gets the name of the observed property: an authentication method, a header field, a folder alias, or a rule.

Observation

Gets what was observed, or null when the signal is the observation.

Provenance

Gets where the signal was read from.

Methods

Create(SpamSignalKind, string, string?, SpamSignalProvenance)

Records one observed fact.