mailコマンドとメール送信時の送信元(ドメイン)の設定

サーバでSSHで操作をしていると、
You have new mail in /var/spool/mail/root
と表示されるのが嫌だったので調べたメモ。

環境:CentOS 5(Linux)

まず表示される原因は見たまんまメールが来ているからで、cronとかで短い間隔でバッチを実行してメール送信している設定にしていると、ちょくちょく表示されるし、無駄にディスク容量を食うので無駄。

これの設定は/etc/crontabを編集
MAILTO=""
にする。

受信したメールを読むのはmailコマンドを使う。
# mail

「help」と打つと使えるコマンドが分かる。最初から読むのは1と打ってenterを押していけば次々に読める。mailコマンドについてはこのサイトを参考に。

めんどくさいときは
& d *
で全て削除される。
& q
でsaveして終了。

最後にメール送信時にfromに設定されるドメインのデフォルト値はサーバの設定情報が使われる。これは
/etc/sysconfig/network
にあるHOSTNAMEを使っているみたい。

設定するにはsystem-config-networkコマンドを使う。参考

sendmailの設定も忘れずに。参考

 

<2009/8/24 追記>
HOSTNAMEを使うのはsendmailの場合。

postfixを使っている場合はmyoriginで設定した値がfromになる。

どちらを使っているかは/usr/sbin/sendmailの実態を参照すると分かる。
# ll /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21  8月 11 10:53 /usr/sbin/sendmail -> /etc/alternatives/mta
# ll /etc/alternatives/mta
lrwxrwxrwx 1 root root 27  8月 23 11:02 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail

postfixを使う場合は/etc/alternatives/mtaを切り替える。方法はネットで検索すると出てくるので、そちらを参考に。

 

< 2013/03/20 Modified >
sendmailかpostfixを使っているかはalternativesで確認できる。
# alternatives –display mta

設定変更する場合は
# alternatives –config mta

postfixの設定例
# vi /etc/postfix/main.cf

myhostname = hoge.com
mydomain = hoge.com
myorigin = $mydomain
mydestination = localhost.$mydomain, localhost

myhostnameで逆引きできないとメール配送を拒否されることが多いので注意。