Rust(lettre)とさくらのメールボックスでメール送信
はじめに Rust の lettre クレートでさくらのメールボックスを用いて独自ドメインでのメールを送信する際の記録です。 前提としては、 xdomain にて独自ドメインを取得済み Netlify DNS にネームサーバを設定してる 独自ドメインのメールアドレスでメールの送信がしたいが、ネームサーバは変更したくないというような状態です。 lettre Rust のメーラライブラリで、 SMTP(Simple Mail Transfer Protocol)を用いてセキュアなメールの送信ができる ファイルの送信 非同期サポート ユニコードサポート などなど欲しい機能が一通り揃っています。 さくらのメールボックスとは かの有名なさくらインターネットさんが用意されているプランの一つで、 独自ドメインのメールが使える 月額 87円(安すぎでは?) と主に月額にひかれて使い始めました。 やりたいこと さくらのメールボックスの登録、独自ドメインの追加、メールアドレスの作成は済んでいるものとします。 Rust 内から lettre を使って独自ドメインからメールを送信しましょう。 まず、公式のサンプルを見てみます。 use lettre::transport::smtp::authentication::Credentials; use lettre::{Message, SmtpTransport, Transport}; 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 year") .body(String::from("Be happy!")) .unwrap(); let creds = Credentials::new("smtp_username".to_string(), "smtp_password".to_string()); // Open a remote connection to gmail let mailer = SmtpTransport::relay("smtp.