2014年7月25日金曜日

LinuxのMailコマンドで外部に送信失敗の時

今まで何度も何度も読み返してるのになぜスルーしてたのか分からない。
mailコマンドはMTAにメール配送を任せるので
たとえば
echo test | mail -s test hogehoge@hoge.com
とかして外部に送信しようとした場合
sendmailやpostfixなどMTAに送信依頼をする。
この時外に出ようとするメールは
「自分の所に届けるメールじゃない」と判断した際
MTAのデフォルト設定にも寄るが基本設定したドメインに
@以降を書き換える。
私の場合Centos6.5だったので必然的にPostfixがデフォルトだったので
main.cfとか一生懸命見直してはテストしてました。
だけどどうやってもMTAが「ユーザー名@localhost.localdomain」とかで
外に送信したがる。
myoriginとか確実に直ってるはずなのにである。

で、何が悪いのか色々なサイトを見て周るも
書かれていることは皆同じ。
どこが違う・・・・・。散々悩んでとあるサイトを見ていた時。
「CentOS7はデフォルトでPostfixになっています」の文字。
ん?
CentOS6だってそうじゃなかったっけ?
・・・・まさか

そう。まさかだったんです。

alternatives --config mta


2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

!!!!!!
sendmailなんて入っていないがな!
すかさす2を選択。
そしてメールテスト・・・・・・。あっさりパス。
ふざけるなぁ!と叫んでおりました。はい。

みなさん。MTAは目的の物に確実に選択されているか確認してから設定してくださいね。