Linuxのmailコマンドについて。

CentOSを使っています。Postfixとsendmailをインストールしているのですが、それらは現在stopしています。しかし、mailコマンドを使ってメールの送信は出来るのですが、このコマンドはどのサーバを使ってメールを送信しているのでしょうか?(それはどのようにして分かるでしょうか?)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/08 09:47:04

ベストアンサー

id:JULY No.1

回答回数966ベストアンサー獲得回数247

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 互換プログラムか、というのも変わります。

他1件のコメントを見る
id:JULY

呼び出される sendmail は、渡されたメールの内容を指定されたアドレスへ送るだけで、いわゆる MTA としての中継は行いません。メールの内容は、通常は標準入力から、送信先は、コマンドラインのオプションで指定します。一般のメールソフトの SMTP の送信機能だけを行うイメージです。

sendmail の sendmail の場合、daemon として起動されれば、よそからのメールを待ち受ける機能を持ち、普通に起動されると、送信する機能だけ、という事になるので、混乱しやすいです。ちなみに、sendmail の sendmail が daemon として起動されるのは、-bd というオプションが指定された場合になります。

ただ、postfix の sendmail コマンドは、ちょっと様子が違います。元々、postfix は細かく機能毎にプログラムが分かれていて、sendmail コマンドはデフォルトだと、配送用のキューにメールを入れるだけで、それを実際に配送するのは pickup というデーモンが拾って... となるはずなので、service postfix status が stop となる状況で、実際に配送出来るか、となると、試したことが無いので、ちょっと疑問です。

2011/12/07 09:34:05
id:koime_ryokutya

くわしい回答ありがとうございます。

2011/12/08 09:46:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません