1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[RaspberryPi]msmtp+gmailでメール送信する方法

Last updated at Posted at 2024-04-21

個人メモ

前提

Raspberry PiにてWEBサーバ構築に、セキュリティ対策としてLogwatchの導入を検討。
Logwatchではメールで通知できるというので、メール送信用のツールが必要。
メールサーバ(postfix/exim)等もあるが、現状メール送信できればいいのでmsmtpを導入する。

以下で、msmtpにてgmailのsmtpを使用してメールを送るための手順をメモとして記しておく。

0.GMailでアプリパスワードを発行しておく

2段階認証を設定

すでに設定済みの場合、この手順は不要

Googleアカウントにログイン

セキュリティ画面を開く

メニュー -> セキュリティ または 下記リンクから

「Googleにログインする方法」 -> 「2段階認証プロセス」

2つ目の手順のいずれかを設定し、「2段階認証プロセスを有効にする」ボタンを押下

2つ目の手順で「認証システム」を利用する場合(PC上で認証が完結するため楽)
認証システムを使用する場合、Google Chromeの拡張機能を使用する

  1. Google Chromeで下記URLにアクセスし、「Authenticator」を追加
    https://chromewebstore.google.com/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai
  2. 2つ目の手順にて「認証システム」をクリック
  3. 「認証システムを設定」をクリック
  4. QRコードが出てきたらウィンドウ右上の拡張機能のアイコンをクリックし、「Authenicator」を起動
  5. 「QRコードをスキャン」で画面上のQRコード範囲を選択しスキャンし、表示された6桁数字をコピー
  6. 画面の「次へ」ボタンを押下し、コピーした6桁数字を貼り付けて「確認」

以降、ログインするときは「Authenicator」で数字をコピーして使用すればOK

アプリパスワードの発行

下記URLからアプリパスワードの発行画面を表示

2024.4.21時点で、この画面に遷移するメニュー等がない

アプリパスワードの作成

名前を設定し「作成」ボタンを押下

表示されたパスワードをコピー

パスワードは二度と見られないのでコピーしておく
コピーしたパスワードは以降の手順で使用

1.インストール

コマンド
$ sudo apt-get install msmtp msmtp-mta

インストールすると/usr/sbin/sendmailが作成される
中身はmsmtpコマンドへのショートカットなので
sendmailコマンドを実行するとmsmtpコマンドを実行してくれるようになる
(sendmailを標準採用しているアプリへの対応)

2.設定ファイル作成

設定ファイルはインストール時に勝手に作られないので自分で手作り
(一応サンプルとかは、/usr/share/doc/msmtp/examples/ にある)

コマンド
$ sudo vi /etc/msmtprc
msmtprc
# Generic
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log(任意)

# Gmail
account        gmail
host           smtp.gmail.com
port           587
from           xxxxx@gmail.com
user           xxxxx@gmail.com
password       [コピーしたアプリパスワード(空白削除)をここに貼り付ける]

# Set a default account
account default : gmail

上記でログファイルを設定した場合はあらかじめ作成しておく

コマンド
$ sudo touch /var/log/msmtp.log
$ sudo chmod 777 /var/log/msmtp.log

3.テスト送信

下記コマンドでメール送信できるかテスト

コマンド
$ echo "TestMailSend" | msmtp xxxxx@gmail.com

メールがくれば成功

ログも確認

コマンド
$ cat /var/log/msmtp.log
msmtp.log
Apr 21 16:09:39 host=smtp.gmail.com tls=on auth=on user=xxxxx@gmail.com from=xxxxx@gmail.com recipients=xxxxx@gmail.com mailsize=73 smtpstatus=250 smtpmsg='250 2.0.0 OK  1713683379 t9-20020a634609000000b005df58c83e89sm5635667pga.84 - gsmtp' exitcode=EX_OK

とかなんとか出てればOK

追加.logwatchの設定

インストール

コマンド
$ sudo apt-get install logwatch

インストール時に、/etc/cron.daily/00logwatch が作成され
毎日、logwatch --output mailコマンドを実行するように構成されている

構成ファイルの作成

構成ファイルは勝手に作られないので、サンプルの構成ファイルをコピーして作成する

コマンド
$ sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
$ sudo vi /etc/logwatch/conf/logwatch.conf
logwatch.conf
出力をメール送信する
- Output = stdout
+ Output = mail

メールの送信先
- MailTo = root
+ MailTo = xxxxx@gmail.commsmtpにて設定したメールアドレス)

メールの送信者名
- MailFrom = Logwatch
+ MailFrom = logwatch@yyyy.yyy(ここは適当に)

上記設定ファイルにあるTmpDir = /var/cache/logwatchのディレクトリを作成する

コマンド
$ sudo mkdir /var/cache/logwatch

以上

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?