diff --git a/README.md b/README.md index 8d39568..405cfae 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ fn main() { // Open a local connection on port 25 let mut mailer = SmtpClient::new_unencrypted_localhost().unwrap().transport(); // Send the email - let result = mailer.send(email.into()); + let result = mailer.send(email); if result.is_ok() { println!("Email sent"); diff --git a/lettre/src/file/mod.rs b/lettre/src/file/mod.rs index 327eb2b..8dcad54 100644 --- a/lettre/src/file/mod.rs +++ b/lettre/src/file/mod.rs @@ -47,7 +47,9 @@ struct SerializableEmail { impl<'a> Transport<'a> for FileTransport { type Result = FileResult; - fn send(&mut self, email: SendableEmail) -> FileResult { + fn send>(&mut self, email: E) -> FileResult { + let email = email.into(); + let message_id = email.message_id().to_string(); let envelope = email.envelope().clone(); diff --git a/lettre/src/lib.rs b/lettre/src/lib.rs index c565a07..32d3318 100644 --- a/lettre/src/lib.rs +++ b/lettre/src/lib.rs @@ -192,5 +192,5 @@ pub trait Transport<'a> { type Result; /// Sends the email - fn send(&mut self, email: SendableEmail) -> Self::Result; + fn send>(&mut self, email: E) -> Self::Result; } diff --git a/lettre/src/sendmail/mod.rs b/lettre/src/sendmail/mod.rs index 751abeb..402c146 100644 --- a/lettre/src/sendmail/mod.rs +++ b/lettre/src/sendmail/mod.rs @@ -41,7 +41,9 @@ impl SendmailTransport { impl<'a> Transport<'a> for SendmailTransport { type Result = SendmailResult; - fn send(&mut self, email: SendableEmail) -> SendmailResult { + fn send>(&mut self, email: E) -> SendmailResult { + let email = email.into(); + let message_id = email.message_id().to_string(); // Spawn the sendmail command diff --git a/lettre/src/smtp/mod.rs b/lettre/src/smtp/mod.rs index f8c782d..298b0d6 100644 --- a/lettre/src/smtp/mod.rs +++ b/lettre/src/smtp/mod.rs @@ -407,7 +407,9 @@ impl<'a> Transport<'a> for SmtpTransport { feature = "cargo-clippy", allow(clippy::match_same_arms, clippy::cyclomatic_complexity) )] - fn send(&mut self, email: SendableEmail) -> SmtpResult { + fn send>(&mut self, email: E) -> SmtpResult { + let email = email.into(); + let message_id = email.message_id().to_string(); if !self.client.is_connected() { diff --git a/lettre/src/stub/mod.rs b/lettre/src/stub/mod.rs index aae26ac..217973c 100644 --- a/lettre/src/stub/mod.rs +++ b/lettre/src/stub/mod.rs @@ -30,7 +30,9 @@ pub type StubResult = Result<(), ()>; impl<'a> Transport<'a> for StubTransport { type Result = StubResult; - fn send(&mut self, email: SendableEmail) -> StubResult { + fn send>(&mut self, email: E) -> StubResult { + let email = email.into(); + info!( "{}: from=<{}> to=<{:?}>", email.message_id(), diff --git a/lettre_email/examples/local.rs b/lettre_email/examples/local.rs index d614028..c7ebde0 100644 --- a/lettre_email/examples/local.rs +++ b/lettre_email/examples/local.rs @@ -22,7 +22,7 @@ fn main() { // Open a local connection on port 25 let mut mailer = SmtpClient::new_unencrypted_localhost().unwrap().transport(); // Send the email - let result = mailer.send(email.into()); + let result = mailer.send(email); if result.is_ok() { println!("Email sent");