Table of Contents

Constructor RecurringMailSubmission

Namespace
MailFathom.Application.Mail.Delivery.Scheduling
Assembly
MailFathom.Application.dll

RecurringMailSubmission(IMailAccountCatalog, NamedRecipientResolver, IAuthoredEmailComposer, IRecurringSendStore, IEmailContentStore, OptimisticConcurrencyRetryPolicy, AccessAuthorization)

Initializes the use case from the accounts it serves and the two writes it commits together.

public RecurringMailSubmission(IMailAccountCatalog accountCatalog, NamedRecipientResolver recipientResolver, IAuthoredEmailComposer composer, IRecurringSendStore recurringSends, IEmailContentStore contentStore, OptimisticConcurrencyRetryPolicy retryPolicy, AccessAuthorization authorization)

Parameters

accountCatalog IMailAccountCatalog

Says which accounts this deployment serves, and therefore which one a caller may name.

recipientResolver NamedRecipientResolver

Turns the people the author named into the addresses every occurrence is offered to.

composer IAuthoredEmailComposer

Builds the draft, and decides every header this system owns rather than the author.

recurringSends IRecurringSendStore

Holds the declaration and its idempotency identity.

contentStore IEmailContentStore

Holds the draft the declaration points at.

retryPolicy OptimisticConcurrencyRetryPolicy

Commits both writes together and resolves a lost race for the same identity.

authorization AccessAuthorization

Answers whether the caller that reached this holds the grant that lets it send.

Exceptions

ArgumentNullException

Thrown when a collaborator is null.