Table of Contents

Constructor MailOutboxPass

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

MailOutboxPass(IOutgoingEmailStore, MailOutboxDelivery, OutgoingMailFilingPass, MailDraftPass, IMailTransportSecurityPolicyReader, MailOutboxSettings)

Initializes the pass from the outbox it claims out of and the attempt it runs.

public MailOutboxPass(IOutgoingEmailStore outgoingEmails, MailOutboxDelivery delivery, OutgoingMailFilingPass filings, MailDraftPass drafts, IMailTransportSecurityPolicyReader transportSecurityPolicyReader, MailOutboxSettings settings)

Parameters

outgoingEmails IOutgoingEmailStore

Claims the batch this pass settles.

delivery MailOutboxDelivery

Attempts one claimed send.

filings OutgoingMailFilingPass

Keeps the mailbox's own copies of these messages in step with what the pass does.

drafts MailDraftPass

Finishes whatever a draft still owes the mailbox, including the one a delivered send was promoted from.

transportSecurityPolicyReader IMailTransportSecurityPolicyReader

Supplies the policy every submission obeys, and says whether the account submits at all.

settings MailOutboxSettings

Bounds how much one pass claims and how long it holds it.

Remarks

The drafts ride this pass rather than one of their own, because what they need is exactly what it already provides: a bounded run per account, on the cadence a signal and an account's synchronization both reach. A second pass would be a second thing to schedule for work that is finished in the same breath as the send it belongs to.

Exceptions

ArgumentNullException

Thrown when a collaborator is null.