CentOSではcronジョブの実行結果をメールで受け取っていたのですが、AlmaLinuxにはmailコマンドもSendmail(あるいはPostfix)もインストールされていません。 これではあまりにも不便なので環境を整備します。
AlmaLinux 9 から MUA は s-nail になっているとのことなのでインストールします。
$ sudo dnf install -y s-nail
ひょっとしたらこれだけでメールのローカル配信(同一マシン内での配信)はできるのではないかと期待したのですが、そんなに甘くはありませんでした。
$ echo test|mail -s test koba
s-nail: Cannot start /usr/sbin/sendmail: executable not found (adjust *mta* variable)
/home/koba/dead.letter 8/131
s-nail: ... message not sent
/usr/sbin/sendmail がないと怒られます*1。 やはり MTA が必要ですね。
Postfix をインストールします。
$ sudo dnf install -y postfix
設定ファイル /etc/postfix/main.cf の inet_interfaces に 127.0.0.1 を設定します。
inet_interfaces = 127.0.0.1
設定にエラーがないかチェックします。
$ sudo postfix check
Postfix を起動します。
$ sudo systemctl start postfix.service
ローカル送信を試します。
$ echo test | mail -s test koba
メールが届きました。
$ mail
s-nail version v14.9.22. Type `?' for help
/var/spool/mail/koba: 1 message 1 new
▸N 1 koba@tk2-211-15046.v 2024-11-06 11:09 15/549 "test "
crondを再起動すれば、cronからの出力がメールで届くようになります。
$ sudo systemctl restart crond.service
cronからの出力はメールで受け取れるようになりましたが、わざわざサーバに見に行くのは面倒です。 ~/.forward に以下のように記述し、普段使っているメールアドレスに転送します。
\koba, koba@example.com
私の使っているメールサービスではこれで転送されました。 Gmailの場合は追加の設定が必要なようです。
サーバを再起動してもPostfixが起動するように設定します。
$ sudo systemctl enable postfix.service