Debian 9.3 Stretchでmsmtpを用いてメール(Gmail)送信の設定を行っていきます。

本記事では各種通知に利用するメール送信に関して設定します。

前回に画面回転の設定を行った続きです。

smtpクライアント: msmtpの設定

root宛のメールを送信させるため、smtpクライアントを導入します。 postfixなど本格的なSMTPメールサーバーは必要ないと思われるので、 シンプルなsmtpクライアントを使います。

以前はgmail+ssmtpを使ったりしていましたが、今はssmtpはメンテされていないみたいです。 今回はメンテが継続しているmsmtpを使うことにします。

インストール

$ sudo apt install msmtp msmtp-mta

設定

$ msmtp --versionを実行すると、設定ファイルの場所が表示されます。 システム設定ファイルは/etc/msmtprc, ユーザー設定ファイルは/etc/name/.msmtprcとなっていました。 今回はroot当てのシステムメールの設定をしたいので、/etc/msmtprcを次のように設定します。

# Set default values for all following accounts.
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
syslog on
aliases /etc/aliases

# gmail
account gmail
host smtp.gmail.com
port 587
from username@gmail.com
user username
password password

# Set a default account
account default : gmail

usernameは使用するgmailユーザー名に置換してください。
gmail以外のメールサービスを使うのであればsmtpサーバーやポートを適宜書き換えてください。

パスワードは直接設定に記述してしまっていますが、root以外に読み取れないように一応権限を変更しておきます。

$ sudo chmod 600 /etc/msmtprc

設定はArchLinuxのものを参考にしました。

gpgの初期設定(今回はスキップ)

パスワード記述を平文にするのは不用心ということで、パスワードを暗号化するなら次の手順で行えるみたいですが、送信のたびにパスフレーズ入力の必要がある模様なので、システムメール的には微妙かもしれません。 今回はセキュリティ上あまりよくないかもしれないが、パスワードは平文で入力しておく。

上記設定ファイルのpassword部分をを次に変更します。 passwordeval gpg --no-tty -q -d /root/.msmtp-gmail.gpg

$ sudo gpg --full-generate-key

鍵はRSA and RSA、keyサイズはデフォルトの2048、有効期限は無期限(0)、 本名、電子メールアドレス、コメントでユーザーIDを記入し、 パスフレーズで暗号化。パスフレーズは控えておく。

$ sudo gpg --encrypt -o /root/msmtp-gmail.gpg -r <user>@gmail.com -

でパスワード入力をして、Ctrl+Dで暗号化ができるみたいです。

GPGについては以下を参考にしました。

メール送信テスト

$ echo "hello test mail" | sudo msmtp -a default addr@example.com

上記のコマンドでで正常に送信できていることを確認できました。

あとはsendmailエイリアスを作成しておきます。

$ sudo ln -sf /usr/bin/msmtp /usr/sbin/sendmail

エイリアス

rootに送ったメールがGmailに転送されるようにエイリアスを設定します。設定は/etc/aliasesを編集します。

# Example aliases file

# send to gmail
root: <usr>@gmail.com

clamavのメール送信

以前にClamAVの自動スキャンスクリプトを記述しましたが、そちらに記載したスクリプトで結果のメールを正しく送信できることも確認できました。

今後

GPU設置前の設定は残すところログの監視のみです。