Table of Contents

Class MailRuleExecution

Namespace
MailFathom.Application.Rules.History
Assembly
MailFathom.Application.dll

What one rule concluded about one email on one pass, and what that conclusion asked the mailbox for.

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

Remarks

The unit of the history is the pair of a rule and a message, because those are the two ways an operator arrives at it: "why is this message here" and "what is this rule doing". A rule the pass never reached — one below a rule that ended the pass — leaves no execution at all, which is what keeps "did not match" and "was never asked" apart.

The facts are recorded by name and never by value. A resolved fact is a sender address, a subject, or a span of extracted text, so recording what it evaluated to is exactly the second copy of the mailbox this record exists not to be. The names are sufficient because the revision is recorded beside them: the expression is retrievable from the configuration revision the pass was bound to, so senderDomain, hasAttachment, and a true result reconstruct the reasoning without reconstructing the mail.

Nothing here is amended once written. An execution states a reading that has already happened, so the record only ever grows and shrinks — by the retention window it is held for, and by the erasure of the message it names.

Properties

AccountId

Gets the account whose mail was evaluated.

Actions

Gets the changes the rule declared and what became of each, in the order the rule declares them.

ConditionFailure

Gets why the condition produced no answer, which is present exactly when the outcome is Failed.

Duration

Gets how long the condition took to answer, including resolving the facts it read.

EvaluatedAt

Gets the instant the email was evaluated at, which every age fact of the pass was measured against.

Id

Gets what addresses this execution.

Outcome

Gets what the condition concluded.

ReadFacts

Gets the facts the condition read, by name, in the order the fact surface declares them.

Revision

Gets the rule set revision the pass was bound to, which is what the condition is retrievable from.

RuleName

Gets the name of the rule, which is MailFathom's own configured name for it.

StoredEmailId

Gets the local identity of the email the rule was evaluated against.

Trigger

Gets which of the pass's two walks reached the email.