sendmailのコマンドが見つからなかったけど、必要だったのはpostfixだったときの話

Linux環境で、事前に作られたシェルスクリプトを叩いたところ、sendmailのコマンドが見つからなくてエラーになりました。

このときテストしていたのは、連携テスト用に立てられた新環境だったため、必要なパッケージがインストールされていないのだな、と安直にsendmailをインストール。

しかし、メール送信が上手くいかない。おそらく、設定周りが間違っているのでしょうが、sendmailは設定がやたらに難しいことで有名らしく、怪しいところをいくらいじっても上手くいきません。maillogを見ると、status=sentになっているのに、宛先には届かないという状況でした。

ちゃんと動作する環境を改めて確認

これはもう完全に私が悪いのですが、該当のシェルが想定通りに起動する環境を改めてチェックしました。

よくよく調べてみると、入っていたのはsendmailではなくてpostfixのほう。ちなみにsendmailは直接叩けず、sbinディレクトリの方に入っていました。

というわけで、sendmailをアンインストールしてpostfixの方をインストール。postfixは基本設定が/etc/postfix/main.cfに集まっているので、動作する環境のmain.cfを拾ってきて、必要そうな変更を反映。サービス再起動してシェルを実行したら、ようやくメール送信成功したのでした。