014 Rust 網路程式設計,郵件傳送的示例

linghuyichong發表於2020-05-16

功能介紹

本例項主要是使用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 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章