なぜこの記事を書こうと思ったのか

Rustでメールを送るのはどうやるのだろうと思って調べてみたのですが、意外と面倒だったのでメモしておきます。
SlackやChatworkほど簡単ではなかったです。。

事前にアプリパスワードを取得しておく

こちらの アプリパスワードを作成、使用する を参考にして、アプリパスワードを取得しておいてください

コード内容

[dependencies]
lettre = "0.11.1"
use lettre::{
    transport::smtp::authentication::Credentials, Message,
    message::{header, SinglePart},
    SmtpTransport, Transport, message::Mailbox, Address
};

fn main() {
    let username = "******@gmail.com";
    let app_password = "**** **** **** **** ";//事前に取得しておいたアプリパスワード
    let smtp = "smtp.gmail.com";
    let email = Message::builder()
        .to(Mailbox::new(None, username.parse::<Address>().unwrap()))
        .from(Mailbox::new(None, username.parse::<Address>().unwrap()))
        .subject("題名")
        .singlepart(
            SinglePart::builder()
                .header(header::ContentType::TEXT_PLAIN)
                .body(String::from("本文"))
        )
        .unwrap();
    let credentials = Credentials::new(username.into(), app_password.into());
    let mailer = SmtpTransport::starttls_relay(smtp)
        .unwrap()
        .credentials(credentials)
        .build();
    let result = mailer.send(&email);
    println!("{:?}", result);
}

参考にさせていただいたサイト

 

广告
将在 10 秒后关闭
bannerAds