linux mailコマンドで簡単にgmailを送る(Raspbery Pi)
Rapberry piにてlinuxコマンドでgmailを送りたいことがあり、その時設定したときの備忘録。
Rapberry piにてlinuxコマンドでgmailを送りたいことがあり、その時設定したときの備忘録。
(最近、google cloud platformを読んだら、pythonでgmail APIを使ってメール出す方法など書かれていただが、たぶんそれよりも簡単だと思う。)
ブラウザでgoogleアプリパスワードを取得して、raspberry piのSSMTPの設定をするのがおおまかな流れです。
設定
google アプリパスワードを取得する
- ブラウザでgmail画面を開き、右上のアイコンをクリック –> “アカウント”をクリック
- ログインとセキュリティをクリック
- アプリパスワードをクリック
- “端末を選択”をクリック –> “その他”をクリック–> 適当な名前を付ける
- アプリパスワードが生成されるのでメモしておく
SMTPの設定
必要なpackageをapt-getでraspberry piにインストール
$ sudo apt-get install ssmtp
$ sudo apt-get install mailutils
$ sudo apt-get install mpack
SSMTPの設定ファイル(/etc/ssmtp/ssmtp.conf)を管理者権限で編集
$ sudo emacs -nw /etc/ssmtp/ssmtp.conf
以下のように編集する
AuthUser=youruserid@gmail.com
AuthPass=userpass
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
ここで、AuthPassは自分のgmailアカウントのパスワードではなく”1. google アプリパスワードを取得する”で取得したパスワードを使います。
参考:https://rpi.tnet.com/project/faqs/smtp
メールを送る
以下のようなメールコマンドでメールを送ることができる。
$ echo "test" | mail -s "Subject" to Someone@mail.com
(備考)linux mailコマンドでmail: cannot send message: Process exited with a non-zero statusが出たときの対応
mailコマンドでgmailを送ろうと設定していたら、mailコマンド実行後に
mail: cannot send message: Process exited with a non-zero status
が出てきて、困った。
調べたところ、sudo emacs -nw /etc/ssmtp/ssmtp.confにAutoLogin=YESAuthLogin=YESの設定を追記したら治った (修正:2017/03/17 黒猫様ご指摘ありがとうございます。)
(参考)
https://www.raspberrypi.org/forums/viewtopic.php?t=46218&p
Share this post
Twitter
Facebook
LinkedIn