pub enum TlsAttemptOutcome {
Success {
policy: &'static str,
},
NotAdvertised,
Rejected {
code: u16,
message: String,
},
HandshakeFailed(TlsOutcome),
}Expand description
Outcome of one STARTTLS attempt, carried by
DeliveryEvent::TlsAttempt. The four variants discriminate
between TLS success, server-side refusal (still safely usable
in plain), and handshake failure (with the structured
mailrs_smtp_client::TlsOutcome underneath).
Variants§
Success
STARTTLS completed; encrypted channel established.
policy tells the report which policy gated this attempt
("dane", "sts", or "opportunistic").
NotAdvertised
Server did not advertise STARTTLS in the EHLO response.
Maps to RFC 8460 starttls-not-supported.
Rejected
Server rejected the STARTTLS command (returned 4xx/5xx).
HandshakeFailed(TlsOutcome)
TLS handshake started but failed mid-way. The wrapped
mailrs_smtp_client::TlsOutcome is RFC 8460 §4.3-aligned.
Trait Implementations§
Source§impl Clone for TlsAttemptOutcome
impl Clone for TlsAttemptOutcome
Source§fn clone(&self) -> TlsAttemptOutcome
fn clone(&self) -> TlsAttemptOutcome
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for TlsAttemptOutcome
impl RefUnwindSafe for TlsAttemptOutcome
impl Send for TlsAttemptOutcome
impl Sync for TlsAttemptOutcome
impl Unpin for TlsAttemptOutcome
impl UnsafeUnpin for TlsAttemptOutcome
impl UnwindSafe for TlsAttemptOutcome
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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