AlmaLinuxでメールを送信できるようにする

CentOSではcronジョブの実行結果をメールで受け取っていたのですが、AlmaLinuxにはmailコマンドもSendmail(あるいはPostfix)もインストールされていません。これではあまりにも不便なので環境を整備します*1

s-nail のインストール

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 がないと怒られます*2。やはり MTA が必要ですね。

Postfix のインストール

Postfix をインストールします。

$ sudo dnf install -y postfix

設定ファイル /etc/postfix/main.cf の inet_interfaces127.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                  "

cronからのメールを受信する

crondを再起動すれば、cronからの出力がメールで届くようになります。

$ sudo systemctl restart crond.service

外部にメール転送する

cronからの出力はメールで受け取れるようになりましたが、わざわざサーバに見に行くのは面倒です。~/.forward に以下のように記述し、普段使っているメールアドレスに転送します。

\koba, koba@example.com

私の使っているメールサービスではこれで転送されました。Gmailの場合は追加の設定が必要なようです。

Postfixを常駐させる

サーバを再起動してもPostfixが起動するように設定します。

$ sudo systemctl enable postfix.service

*1:あくまで送信のみ、受信はしません

*2:dead.letter なんて久しぶりに聞いた