email-clients 0.2.0

This is library that provides user with easy to use email clients collection in rust.
Documentation
#[cfg(feature = "memory")]
mod test {
    use email_clients::clients::memory::{MemoryClient, MemoryConfig};
    use email_clients::clients::EmailClient;
    use email_clients::email::{EmailAddress, EmailObject};
    use std::sync::mpsc;

    #[tokio::test]
    async fn send_email_saved_in_memory() {
        let recipient_mail = "mail@example.com".to_string();
        let mail_subject = "New subject".to_string();
        let mail_body = "Body of email".to_string();
        let mail_html = "Body of email in <b>HTML</b>".to_string();
        let from: EmailAddress = "test@example.com".into();

        let (tx, rx) = mpsc::sync_channel(2);

        let email_client = EmailClient::Memory(MemoryClient::with_tx(MemoryConfig::new(from), tx));
        let email = EmailObject {
            sender: "test@example.com".into(),
            to: vec![EmailAddress {
                name: "Mail".to_string(),
                email: recipient_mail.clone(),
            }],
            subject: mail_subject.clone(),
            plain: mail_body.clone(),
            html: mail_html,
        };

        email_client
            .unwrap()
            .send_emails(email)
            .await
            .expect("Unable to send email");

        let email = rx.recv().unwrap();

        assert_eq!(email.sender.email, "test@example.com");
        assert_eq!(email.to[0].email, recipient_mail);
        assert_eq!(email.subject, mail_subject);
        assert_eq!(email.plain, mail_body);
    }
}