msmtp を使う
概要
過去記事やQiitaの記事で使用したmsmtp
は普通に便利なのでご紹介します。
過去記事 kawahara-ci.hatenablog.com
Qiitaの記事 qiita.com
ローカル開発環境でメール送信するという需要は少ないとは思いますが、知っていて損はないので記事を書きました。
これをDockerに展開することも可能です。
インストールして設定する
brew install msmtp
Windowsだと・・・ごめん、わからない。
インストールが終わったら設定します。
~/.msmtprc
に外部メールサーバーの設定をします。
みんなが大好きな Gmailの設定例を書きます。
host smtp.gmail.com port 587 user 使用するGmailアカウント password アプリパスワード from 使用するGmailアカウント tls on tls_starttls on tls_certcheck off auth on logfile ~/.msmtp.log
ここで重要なのはアプリパスワードです。
Gmailを外部メールサーバーとして使うためには、アプリパスワードを設定します。
アプリパスワードを使用するには2段階認証プロセスを有効にしないと使用できません。
まあ、エンジニアなら2段階認証プロセスを有効にしていると思うので、アプリパスワードの説明だけです。
アプリパスワードの設定はマイアカウントのセキュリティから設定します。
アプリパスワードを押下するとパスワード生成画面に遷移します。
アプリを選択、デバイスを選択の項目は、備忘録みたいなものなので、適当で良いです。
入力したら「生成」を押下します。
アプリパスワードが生成されました。(このアプリパスワードは破棄済み)
このアプリパスワードを先程の~/.msmtprc
に設定します。
使ってみる
過去記事やQiitaの記事を参考にどうぞ!
過去記事 kawahara-ci.hatenablog.com
Qiitaの記事 qiita.com
せっかくなのでPerlでもやってみましょう!
パイプでやればいけます。
下記サンプルでファイルを作りperl msmtp.pl
とか実行するとメールが送信されます。
#!/usr/bin/perl if (! open($mail, "| /usr/local/bin/msmtp -t")) { print "msmtp が無いです。¥n"; exit; } $mailtext = << "EOM"; From: sample\@sample.com To: sample\@sample.com Subject: test test EOM print $mail $mailtext; close $mail; exit;
なおPHPでもパイプで送信可能ですが、PHPならsendmail_pathを設定すればOKです。
使い終わったら
アプリパスワードが不要になったら削除しましょう。
ゴミ箱のアイコンを押下すると、確認ダイアログ無しで、速攻で削除されます。