電子メールを送る場合、通常2つのプログラムが必要です。1つは、MUA( Mail User Agent) で、MUA はユーザーインターフェースを担当します。今一つは、 MTA ( Mail Transfer Agent ) で、Berkeley の sendmail が有名です。 MUA と MTA を用いた電子メールの配送方法は、下図のように考えることが出来ます。
順番に経路を辿ると、
のようにメールは配送されます。従って、その配送に関しては MTA が非常に 重要な訳です。しかし、MTA に用いられる sendmail はその動作を sendmail.cf と呼ばれる設定ファイルによって定義さるのですが、この sendmail.cf の構文は 非常に複雑怪奇であり、その歴史性故に Unix の中でも特異な存在と化しています。 また、sendmail 自身も様々な改良が施され、現在では R8 がリリースされ ています。 Sun などに標準で添付される sendmail は R5 であるので、出来るだけ R8 に 移行した方が良いでしょう。
先に、sendmail の役割について簡単に触れましたが、実際に sendmail がメールを 配送するに当たって、幾つかの作業をする必要があります。例えば、発信人のアドレス を正確に記述しなければ受け取った側からの返信が出来ないという事態が生じる こともありますので、発信人のアドレスをどうするかという問題があります。 最も簡単なアドレスは、次のようなマシン名を含むアドレスですが、
From: hogehoge@lxa1.summer1.wakhok.ac.jp
発信人が返信をこの lxa1 で受け取りたくないと思っている場合や、そのサイト の運用として、mail spool host を別に設定している場合などもあるでしょう。 更には、この lxa1 というマシンが、DNS に登録されていない場合も考えられます (DNS に登録されていないと、相手側が最初から lxa1 の IP address を知らない 限り返信を返すことが出来ない)。このことは、同時にメールを受け取る場合にも 生じます。従って、sendmail の設定をすることは取りも直さず、 メールシステム自身の設計から始めければならないのです。