pub enum EmailClient {
Smtp(SmtpClient),
Terminal(TerminalClient),
Memory(MemoryClient),
MailerSend(MailerSendClient),
}Available on crate features
document-features or mailersend or memory or smtp or terminal only.Expand description
EmailClient Enum representing different types of email clients.
Currently supported email clients: SMTP, Terminal, Memory.
§Examples
To integrate SMTP email client:
use email_clients::clients::EmailClient;
use email_clients::clients::smtp::{SmtpClient, SmtpConfig};
let config = SmtpConfig::default();
let smtp_email_client = EmailClient::Smtp(SmtpClient::new(config));To integrate Terminal email client:
use email_clients::clients::EmailClient;
use email_clients::configuration::EmailConfiguration::Terminal;
use email_clients::clients::terminal::{TerminalClient, TerminalConfig};
let config = TerminalConfig::default() ;
let terminal_email_client = EmailClient::Terminal(TerminalClient::new(config));To integrate Memory email client:
use email_clients::clients::EmailClient;
use email_clients::configuration::EmailConfiguration::Memory;
use email_clients::clients::memory::{MemoryClient, MemoryConfig};
let config = MemoryConfig::default();
let memory_email_client = EmailClient::Memory(MemoryClient::new(config));To integrate mailersend client:
use email_clients::clients::EmailClient;
use email_clients::clients::mailersend::{MailerSendClient, MailerSendConfig};
let config = MailerSendConfig::default().api_token("API_TOKEN");
let mailersend_client = EmailClient::MailerSend(MailerSendClient::new(config));Variants§
Smtp(SmtpClient)
Available on crate feature
smtp only.Terminal(TerminalClient)
Available on crate feature
terminal only.Memory(MemoryClient)
Available on crate feature
memory only.MailerSend(MailerSendClient)
Available on crate feature
mailersend only.Implementations§
Source§impl EmailClient
impl EmailClient
Sourcepub fn unwrap(self) -> Box<dyn EmailTrait + Send>
pub fn unwrap(self) -> Box<dyn EmailTrait + Send>
Unwrap the EmailClient enum variant and convert it into a Box<dyn EmailTrait + Send>.
This method allows us to obtain a Boxed trait object which implements
EmailTrait and Send from an instance of EmailClient regardless of its variant.
§Examples
Basic usage:
use email_clients::email::EmailObject;
let config = SmtpConfig::default();
let smtp_email_client = EmailClient::Smtp(SmtpClient::new(config));
// Unwrapping converts the specific variant into a Boxed trait object.
let unwrapped_client = smtp_email_client.unwrap();
// Now we can use unwrapped_client directly to use methods of EmailTrait.
unwrapped_client.send_emails(EmailObject::default()).await?;Trait Implementations§
Source§impl Clone for EmailClient
impl Clone for EmailClient
Source§fn clone(&self) -> EmailClient
fn clone(&self) -> EmailClient
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 moreSource§impl Debug for EmailClient
impl Debug for EmailClient
Source§impl Default for EmailClient
Available on crate feature terminal only.
impl Default for EmailClient
Available on crate feature
terminal only.Source§fn default() -> Self
fn default() -> Self
Default constructor for EmailClient.
This method will create a new EmailClient configured with default TerminalClient.
This is useful when you want to quickly get a working EmailClient without specifying any configuration.
§Examples
Basic usage:
let client = EmailClient::default();
assert_eq!(client.unwrap().get_sender().to_string(), "");Auto Trait Implementations§
impl !RefUnwindSafe for EmailClient
impl !UnwindSafe for EmailClient
impl Freeze for EmailClient
impl Send for EmailClient
impl Sync for EmailClient
impl Unpin for EmailClient
impl UnsafeUnpin for EmailClient
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