マニアックな記事になってしまい申し訳ありません。
以前、サーバでアプリケーションのログ監視中にエラーが発生した場合、メールにログファイルを添付して通知したいということがあり、その設定手順について投稿しました。
そちらの記事で紹介していたSMTPクライアント「SSMTP」が2014年時点で更新が止まってしまっているため、2020年時点でも更新されているSMTPクライアント「MSMTP」を使用した手順を投稿します。
広告
前提条件
- サーバOSはCentOS 7
- SMTPサーバはGmailを使用する
- Googleアカウントは 2段階認証を設定している
用意するもの
- Googleアカウント
手順
Googleのアプリパスワードを発行する
「セキュリティ」>「アプリ パスワード」と遷移する
「アプリを選択する」で「メール」を選択する
「デバイスを選択する」で「その他(名前を入力)」を選択する
任意の名前を入力する
例)シェルスクリプト「生成」ボタンを押す
以降の 手順(「MSMTP」を設定する)で使用するのでメモ帳などにコピーしておく
「EPEL」(EnterpriseLinux用の追加パッケージセット)を設定する
1.「EPEL」をインストールする
$ sudo yum install epel-release
「Mutt」(UNIX向け電子メールクライアント)を設定する
1.「Mutt」をインストールする
$ sudo yum install mutt
2.「Mutt」を設定する
「Mutt」の設定ファイルに下記の通り、追記する
$ sudo vi /etc/Muttrc
set sendmail="/usr/sbin/ssmtp" # SMTPクライアント(SSMTPを指定)
set realname="[メールの差出人名]" # メールの差出人名
set from="[返信先のメールアドレス]" # 受信者のメーラーで「From」に表示させるメールアドレス
「MSMTP」(メール転送エージェント)を設定する
1.「MSMTP」をインストールする
$ sudo yum install msmtp
広告
2.「MSMTP」を設定する
「MSMTP」の設定ファイルに下記の通り、修正もしくは追記する
$ sudo cp /usr/share/doc/msmtp-x.x.x/msmtprc-user.example /etc/msmtprc
$ sudo chmod 600 /etc/msmtprc
$ sudo vi /etc/msmtprc
~前略~
# Set default values for all following accounts.
defaults
# Use the mail submission port 587 instead of the SMTP port 25.
port 587
# Always use TLS.
tls on
~中略~
tls_trust_file /etc/pki/tls/certs/ca-bundle.crt
~中略~
tls_starttls on
logfile /var/log/msmtp.log
# A freemail service
account gmail
# Host name of the SMTP server
host smtp.gmail.com
~中略~
# Envelope-from address
from [FROMのメールアドレス]
# Authentication. The password is given using one of five methods, see below.
auth on
user [Googleアカウント@gmail.com]
~中略~
password [アプリパスワード(16文字)]
~中略~
# Set a default account
account default : gmail
※設定ファイルにパスワードを平文で記載しなくてもよい方法がありますので、また別途投稿します。
メールを送信する
$ echo "[メール本文]" | mutt "[メール件名]" [宛先メールアドレス] -a [添付ファイルパス1] -a [添付ファイルパス2]
まとめ
試行錯誤の末、何とかこの手順に辿り着きました。
同じように悩んでいる方の役に立てば幸いです。
最後まで読んでいただきありがとうございます。
よかったら、下のボタンからフォローやシェアをしていただけるとうれしいです。
コメント