CentOSを使っています。Postfixとsendmailをインストールしているのですが、それらは現在stopしています。しかし、mailコマンドを使ってメールの送信は出来るのですが、このコマンドはどのサーバを使ってメールを送信しているのでしょうか?(それはどのようにして分かるでしょうか?)
mail コマンドが sendmail コマンドを呼び出し、起動された sendmail コマンドが、設定内容に従って、相手先、もしくは、中継先のメールサーバへ繋ぎ、SMTP で送信します。送信が完了すれば、起動された sendmail コマンドは終了します。
Postfixとsendmailをインストールしているのですが、それらは現在stopしています。
そのマシン上で、よそから SMTP 経由でメールを受け取る必要が無ければ、これらが daemon として起動されている必要はありません。
ちなみに CentOS 5 の場合、 Postfix と sendmail の両方がインストールされている場合、実際に使われるのはどちらか片方になります。system-switch-mail(非 GUI 環境であれば system-switch-mail-nox)で切り替える事が可能です。CentOS 6 であれば、alternatives コマンドで切り替えます。
で、この切り替えによって、呼び出される sendmail コマンドも、sendmail の sendmail(って、変な言い方ですが...)か、Postfix に含まれる sendmail 互換プログラムか、というのも変わります。
呼び出される sendmail は、渡されたメールの内容を指定されたアドレスへ送るだけで、いわゆる MTA としての中継は行いません。メールの内容は、通常は標準入力から、送信先は、コマンドラインのオプションで指定します。一般のメールソフトの SMTP の送信機能だけを行うイメージです。
2011/12/07 09:34:05sendmail の sendmail の場合、daemon として起動されれば、よそからのメールを待ち受ける機能を持ち、普通に起動されると、送信する機能だけ、という事になるので、混乱しやすいです。ちなみに、sendmail の sendmail が daemon として起動されるのは、-bd というオプションが指定された場合になります。
ただ、postfix の sendmail コマンドは、ちょっと様子が違います。元々、postfix は細かく機能毎にプログラムが分かれていて、sendmail コマンドはデフォルトだと、配送用のキューにメールを入れるだけで、それを実際に配送するのは pickup というデーモンが拾って... となるはずなので、service postfix status が stop となる状況で、実際に配送出来るか、となると、試したことが無いので、ちょっと疑問です。
くわしい回答ありがとうございます。
2011/12/08 09:46:58