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
outgoingEmailsIOutgoingEmailStoreClaims the batch this pass settles.
deliveryMailOutboxDeliveryAttempts one claimed send.
filingsOutgoingMailFilingPassKeeps the mailbox's own copies of these messages in step with what the pass does.
draftsMailDraftPassFinishes whatever a draft still owes the mailbox, including the one a delivered send was promoted from.
transportSecurityPolicyReaderIMailTransportSecurityPolicyReaderSupplies the policy every submission obeys, and says whether the account submits at all.
settingsMailOutboxSettingsBounds 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.