pub enum DeliveryEvent {
Attempt {
queue_id: i64,
domain: String,
},
TlsAttempt {
domain: String,
mx_host: String,
outcome: TlsAttemptOutcome,
},
Success {
queue_id: i64,
domain: String,
},
Failed {
queue_id: i64,
domain: String,
error: String,
},
Bounced {
queue_id: i64,
sender: String,
},
}Expand description
Outbound delivery event for external observers (admin UI, audit log, metrics pipeline, TLSRPT reporter).
Variants§
Attempt
A delivery attempt is starting for queue_id targeting domain.
Fields
TlsAttempt
The STARTTLS phase completed (success or failure). Emitted once per MX connection right after the TLS handshake, before any RCPT TO / DATA. Carries structured outcome suitable for TLSRPT (RFC 8460) reporting.
Not emitted when the connection is plain (no STARTTLS attempted), in which case the caller should record the session as untrusted-TLS via its own logging.
Fields
outcome: TlsAttemptOutcomeStructured outcome of the TLS attempt.
Success
The message was accepted by the remote MX.
Fields
Failed
A delivery attempt failed; the message is rescheduled for retry.
Fields
Bounced
The message bounced permanently and will not be retried; a DSN was
queued back to the original sender.
Trait Implementations§
Source§impl Clone for DeliveryEvent
impl Clone for DeliveryEvent
Source§fn clone(&self) -> DeliveryEvent
fn clone(&self) -> DeliveryEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for DeliveryEvent
impl RefUnwindSafe for DeliveryEvent
impl Send for DeliveryEvent
impl Sync for DeliveryEvent
impl Unpin for DeliveryEvent
impl UnsafeUnpin for DeliveryEvent
impl UnwindSafe for DeliveryEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more