Skip to main content

dispatch_mail_outbox

Function dispatch_mail_outbox 

Source
pub async fn dispatch_mail_outbox<R, E, List, ListFut, Claim, ClaimFut, Deliver, DeliverFut, MarkSent, MarkSentFut, MarkRetry, MarkRetryFut, MarkFailed, MarkFailedFut, OnSent, OnSentFut, OnFailed, OnFailedFut>(
    config: &MailOutboxDispatchConfig,
    list_claimable: List,
    try_claim: Claim,
    deliver: Deliver,
    mark_sent: MarkSent,
    mark_retry: MarkRetry,
    mark_failed: MarkFailed,
    on_sent: OnSent,
    on_failed: OnFailed,
) -> Result<DispatchStats, E>
where R: MailOutboxDispatchRow, E: Display, List: FnMut(u64, i64) -> ListFut, ListFut: Future<Output = Result<Vec<R>, E>>, Claim: FnMut(i64) -> ClaimFut, ClaimFut: Future<Output = Result<bool, E>>, Deliver: FnMut(R) -> DeliverFut, DeliverFut: Future<Output = Result<String, E>>, MarkSent: FnMut(i64, usize) -> MarkSentFut, MarkSentFut: Future<Output = Result<bool, E>>, MarkRetry: FnMut(i64, i32, i64, String) -> MarkRetryFut, MarkRetryFut: Future<Output = Result<bool, E>>, MarkFailed: FnMut(i64, i32, String) -> MarkFailedFut, MarkFailedFut: Future<Output = Result<bool, E>>, OnSent: FnMut(MailOutboxDispatchContext, i32, String) -> OnSentFut, OnSentFut: Future<Output = ()>, OnFailed: FnMut(MailOutboxDispatchContext, i32, String) -> OnFailedFut, OnFailedFut: Future<Output = ()>,
Expand description

Runs one mail outbox dispatch pass using product-provided persistence callbacks.

Forge owns the control flow and retry classification. Product crates own time calculation, repository calls, template rendering, mail auditing, and error types.