Ubuntu

Ubuntu24.04 msmtpでメールを送る

サーバーからメールを送るにあたって、Postfixは少し大げさだなと思っていたのだけれど、他の方法を知らなかった。
Geminiさんに相談してみたところ、mtmtpがあるよ、と教えてくれた。



ここから広告
広告
広告ここまで


設定

インストールと設定

msmtpをインストールする。

$ sudo apt install msmtp msmtp-mta

設定ファイルを作成する。
宅内のサーバーを利用したメール送信なので、ログの出力しないことにした。

/etc/msmtprc

# デフォルトの共通設定
defaults
auth off
tls off
domain example.com
#logfile /var/log/msmtp ← ファイルに出力するならこれ
#logfile - ← 標準出力に出力するならこれ

# LAN内のメールサーバー設定
account default
host mx.example.com
port 25
from root@server.example.com

設定ファイルのグループを変えて、権限を設定する。

$ sudo chown root:msmtp /etc/msmtprc
$ sudo chmod 0640 /etc/msmtprc

動作確認でログが見たいときには、logfile に - を指定しておいて、終わったらコメント化しておくくらいで良さそう。

ログの設定

やっぱりログを出力させたい、と考えるならいくつか設定。
ただし、ログは書き換えし放題、ローテートもrootで動かすなど、ちょっと嫌な設定をすることになる。

ログファイルを作成し、権限を設定する。

$ sudo /var/log/msmtp
$ sudo touch /var/log/msmtp
$ sudo chmod 666 /var/log/msmtp

ログローテートの設定。

/etc/logrotate.d/msmtp

/var/log/msmtp {
su root root
monthly
rotate 4
missingok
notifempty
create 0666 root root
}

この他、

$ sudo mkdir /var/log/msmtp
$ sudo chmod 755 /var/log/msmtp
$ sudo touch /var/log/msmtp/send.log
$ sudo chmod 666 /var/log/msmtp/send.log

のようにして、ローテートの設定でsu root root不要な状態にすることも考えられる。
ただしこの場合は、AppAormorでこのファイルへの書き込みができるように設定しておく必要がある。

テスト

メール送信をテストする。

$ sendmail root@example.com <<EOF
Subject: MSMPT Final Test
From: root@server.example.com

This is a test mail from Ubuntu 24.04 server using msmtp.
EOF

これで目当ての宛先にメールが届いた。

ここから広告
広告
広告ここまで

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他