功能介紹
本例項主要是使用lettre和letter-email實現在程式中傳送郵件的功能。
準備工作
環境說明:
- 作業系統:ubuntu18.04
- Rust版本:1.41.0
其它依賴安裝準備:
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt install pkg-config
sudo apt install pkgconf
演示示例
- 編寫Cargo.toml,新增如下:
[dependencies] lettre = "0.9" lettre_email = "0.9
- 編寫src/main.rs原始碼如下:
use lettre::smtp::authentication::Credentials; use lettre::{SmtpClient, Transport}; use lettre_email::{EmailBuilder, Mailbox};
fn main() {
let email = EmailBuilder::new()
.from(Mailbox::new(“傳送者的郵箱地址”.to_string()))
//.from(Mailbox::new(“xiaoming@163.com“.to_string())) //傳送者:xiaoming@163.com
.to(Mailbox::new(“接收者郵箱地址”.to_string()))
//.to(Mailbox::new(“xiaohong@126.com“.to_string())) //接收者:xiaohong@126.com
.subject(“Test”) //郵件標題
.body(“This is a test email!”) //郵件內容
.build()
.unwrap();
//for example: xiaoming@163.com, password: 123456
//let creds = Credentials::new("xiaoming".to_string(), "123456".to_string());
let creds = Credentials::new("你的郵箱使用者名稱".to_string(), "你的郵箱密碼".to_string());
//如163的郵箱就是smtp.163.com, 126的郵箱就是smtp.126.com
let mut mailer = SmtpClient::new_simple("郵箱伺服器地址")
.unwrap()
.credentials(creds)
.transport();
let result = mailer.send(email.into());
if result.is_ok() {
println!("Email sent");
} else {
println!("Could not send email: {:?}", result);
}
assert!(result.is_ok());
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結