Files
lettre/examples/asyncstd1_smtp_starttls.rs
Paolo Barbolini 20d0f8f3ba Add async-std support to smtp transport (#531)
* Add async-std support to smtp transport

* fix Tls import

* fix copy paste

* too many imports

* Temporarely skip async-std native-tls support

* Fix panic message

* TlsParameters: use rustls when async-std is enabled
2021-01-28 11:07:15 +01:00

32 lines
1.0 KiB
Rust

use lettre::{
transport::smtp::authentication::Credentials, AsyncSmtpTransport, AsyncStd1Connector,
AsyncStd1Transport, Message,
};
#[async_std::main]
async fn main() {
tracing_subscriber::fmt::init();
let email = Message::builder()
.from("NoBody <nobody@domain.tld>".parse().unwrap())
.reply_to("Yuin <yuin@domain.tld>".parse().unwrap())
.to("Hei <hei@domain.tld>".parse().unwrap())
.subject("Happy new async year")
.body(String::from("Be happy with async!"))
.unwrap();
let creds = Credentials::new("smtp_username".to_string(), "smtp_password".to_string());
// Open a remote connection to gmail using STARTTLS
let mailer = AsyncSmtpTransport::<AsyncStd1Connector>::starttls_relay("smtp.gmail.com")
.unwrap()
.credentials(creds)
.build();
// Send the email
match mailer.send(email).await {
Ok(_) => println!("Email sent successfully!"),
Err(e) => panic!("Could not send email: {:?}", e),
}
}