Matthewの備忘録

忘れたときはここを見ろ。何か書いてある。

昆布乾燥室温湿度モニタリングシステム その7

 モニタリング中に設定した状態になっていたら Raspberry Pi から直接報告のメールを送信できるようにする。今回はメール送信を可能にするところまで。

 MTA として既にインストールされていた postfix の利用でもよかったのだが、ssmtp が簡単そうなので採用することにした。*1またプロバイダーには Gmail を利用する。

Google アカウントの設定

 持っている Google アカウントを経由してメールを送信させたいので、そのアカウントの「安全性の低いアプリの許可」を「有効」にする。これはアカウントにログインして「ログインとセキュリティ」のメニューの最も下に用意されていて、トグルボタンがあるので無効になっていたら有効に切り替える。有効にしてから数分たってからでないと設定が認証機能に伝わらないようだ。待つべし。
 
 「安全性の低いアプリの許可」を有効にしたので「2段階認証プロセス」をオンにしてアカウントを保護したいが、次の回にその設定をする。今回はメールが送れることを確認するに留める。

インストー

 apt-getするだけでよいが、インストールされているpostfixがアンインストールされる(かもしれない)。このブログを書いたときにインストールした ssmtp のバージョンは"2.64-8"である。

$ sudo apt-get -yV install ssmtp mailutils

 上記のコマンド実行後に依存関係に問題がありそうなメッセージが出るが、今のところ無視して構わない。もう一度上記を実行すれば問題が表示されない。

設定

 ssmtp の設定ファイルを書き換える。

$ sudo vi /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=ここにGmailのメールアドレス

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=raspberrypi

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

AuthUser=ここにGmailのメールアドレスではなくアカウント名
AuthPass=上記アカウントのパスワード
UseSTARTTLS=YES

テスト

 次のコマンドを実行してメール送信を確認する。

$ echo 'This is a test.' | mail -s 'Test Mail' 送り先のメールアドレス

*1:最初はnullmailerだったがメールが送信できなかったのでssmtpにした