なぜこの記事を書こうと思ったのか
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);
}
参考にさせていただいたサイト