Table of Contents

Class RecurringSend

Namespace
MailFathom.Domain.Delivery.Scheduling
Assembly
MailFathom.Domain.dll

States one message an owner wrote once and asked to be sent again on every occasion a schedule names.

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

Remarks

It is a declaration rather than a queue: nothing here is due, and nothing here is transmitted. Each occasion the schedule reaches produces an outgoing record of its own, with its own idempotency identity, its own attempts, and its own ending — so one Monday's provider outage is not the next Monday's, and a message refused for good stops one occurrence rather than the declaration behind it.

The schedule is kept as the text an operator wrote and is parsed above this type, because the syntax belongs to the dispatch mechanism this declaration rides rather than to the mail domain. What is refused where the declaration is made is a schedule that does not parse, so nothing durable states an occasion nothing can resolve.

The message itself is not here. Every occurrence has to be a message of its own — a repeated Message-ID would thread a year of Mondays as one message in every recipient's client — so what is kept is the authored draft, in the content store beside every other piece of RFC 822 this system holds, and each occasion composes from it. The addresses are here because an envelope is built from them and because they are what an operator reads back when they ask who this declaration writes to.

It is derived personal data of the same kind an outgoing record is, and inherits the same retention, deletion, and export obligations: it says who this mailbox's owner writes to, and how often.

Fields

MaximumScheduleLength

The greatest length a declared schedule may have, which bounds the column it is stored in.

Properties

AccountId

Gets the account each occurrence is submitted through and sent as.

CancelledAt

Gets when the declaration was stopped, or null while it still produces occurrences.

DeclaredAt

Gets when the declaration was written down.

DraftByteLength

Gets how many bytes of MIME were stored as the draft every occurrence is composed from.

Id

Gets what every occurrence and every later act refers to this declaration by.

IsActive

Gets whether the declaration still produces an occurrence when its schedule comes round.

LastOccurrenceAt

Gets the occasion this declaration last produced a message for, or null while it has produced none.

LastOccurrenceEmailId

Gets the message the last occasion produced, or null while there has been none.

Recipients

Gets the people every occurrence is offered to, each named once.

Requester

Gets the authored act that asked for the declaration, which every occurrence's identity is composed from.

Schedule

Gets the schedule as it was declared, in the syntax the dispatch mechanism parses.