pub struct EmailChannel { /* private fields */ }Expand description
Email channel dispatcher.
Endpoints are expected in RFC 6068 mailto: form. Subscription headers
with Subject:, From:, Reply-To:, and Cc: override the server
defaults on a per-message basis. Full-resource payloads are refused
when the SMTP transport is unencrypted — analogous to the HTTPS
requirement on the rest-hook channel.
Implementations§
Source§impl EmailChannel
impl EmailChannel
Sourcepub fn new(settings: SmtpSettings) -> Result<Self, SubscriptionError>
pub fn new(settings: SmtpSettings) -> Result<Self, SubscriptionError>
Build an EmailChannel backed by a real SMTP transport.
Trait Implementations§
Source§impl ChannelDispatcher for EmailChannel
impl ChannelDispatcher for EmailChannel
Source§fn dispatch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
subscription: &'life1 ActiveSubscription,
notification_bundle: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<DispatchResult, SubscriptionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn dispatch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
subscription: &'life1 ActiveSubscription,
notification_bundle: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<DispatchResult, SubscriptionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Deliver a notification bundle to the subscriber’s endpoint.
Source§fn handshake<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
subscription: &'life1 ActiveSubscription,
handshake_bundle: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<DispatchResult, SubscriptionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handshake<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
subscription: &'life1 ActiveSubscription,
handshake_bundle: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<DispatchResult, SubscriptionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Perform the handshake sequence for a newly activated subscription.
Auto Trait Implementations§
impl !RefUnwindSafe for EmailChannel
impl !UnwindSafe for EmailChannel
impl Freeze for EmailChannel
impl Send for EmailChannel
impl Sync for EmailChannel
impl Unpin for EmailChannel
impl UnsafeUnpin for EmailChannel
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> 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