Async implementation of SMTP
Based on the great lettre library.
pub type Error = Box<dyn std::error::Error + Send + Sync>; pub type Result<T> = std::result::Result<T, Error>; use async_smtp::{Envelope, SendableEmail, SmtpClient, SmtpTransport}; async fn smtp_transport_simple() -> Result<()> { let stream = TcpStream::connect("127.0.0.1:2525").await?; let client = SmtpClient::new(); let mut transport = SmtpTransport::new(client, stream).await?; let email = SendableEmail::new( Envelope::new( Some("user@localhost".parse().unwrap()), vec!["root@localhost".parse().unwrap()], )?, "Hello world", ); transport.send(email).await?; Ok(()) }Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.