mailコマンドでメールが届かない!
サーバからmailコマンドでちょっとしたメールを飛ばしたかったのだが、メールが届かなかった
ログを見てみると
Domain of sender address xxx@xxxxx not exist
となっていた
@以下はこのサーバのhostnameになっていて、これはDNS登録してないので、たしかに存在しない
それで先方のメールサーバから拒否られてるわけだ
From:のドメインが変えられない!
じゃあFrom:のドメイン名を適当な存在するドメイン名に変えればいいじゃないかと思い調べるとpostfixのmain.cfでmyoriginを設定すればOK、と出てきたのだが、これをしてもなぜかFrom:のドメインが変わらない
mailコマンドを使うときに-rオプションを使ってFrom:を指定してあげれば問題は解決するのだけど、mailコマンドを使う時に毎回それを書かないといけないのはちょっと嫌だ
mail -r from@xxxx.co.jp to@xxxx.co.jp
それにせっかくpostfixにmyoriginという設定があるんだからできないわけないのだ、なのになかなか原因が見つからない
解決
mailutilsのmailコマンドを使ってるとmyoriginは無視して勝手にhostnameを使うんだそうな、なにそれ
というわけで代わりにbsd-mailxのmailコマンドをインストールすれば解決
sudo apt install bsd-mailx
これだけで問題ないと思うが、必要があればupdate-alternativeを使ってちゃんとbsd-mailxを使うように変更
sudo update-alternative --config mailx