E-mail システムにおいて、 「ユーザが操作する部分」を MUA (Mail User Agent) と, 「実際に配送を行う部分」を MTA (Mail Transport Agent)と 言うことがあります。
たとえば、Windowsにおける Outlook や Netscape mailなどは MUA 用のアプリケーションプログラムですし、 また、今回説明する sendmail などは MTA のプログラムであると 言えます。
E-mailを他のホストへ送ったり、他のホストから受け取ったりするのは sendmail というプログラムです。
sendmailは senderから受け取ったメイルを解析し、 配送のための経路を決定し、mailer (実際の配送をするプログラム) を選択します。 sendmail.cf は、sendmailの設定ファイルであり、
実際の mail の配送は、別のプログラム(たとえば uucp 経由の場合は uux、 ローカルホストの場合は /usr/bin/procmail)によって行なわれますが、 現在のsendmailの実装では SMTP (Simple Mail Transfer Protocol) 経由の 場合はsendmailプログラムが直接送っています。
vermeer% telnet compXX 25 ← compXX上のsendmailと会話する Trying 133.99.10.10... Connected to compXX.tsuda.ac.jp. Escape character is '^]'. 220 compXX.tsuda.ac.jp ESMTP Sendmail 8.9.3/8.9.3; Sat, 10 Jun 2000 16:51:05 +0900 HELO vermeer.tsuda.ac.jp ← ホスト名を名乗る 250 compXX.tsuda.ac.jp Hello vermeer.tsuda.ac.jp [133.99.10.3], pleased to meet you MAIL FROM: nitta@tsuda.ac.jp ← 差出人のアドレス (他のホスト) 250 nitta@vermeer.tsuda.ac.jp... Sender ok RCPT TO: root@compXX.tsuda.ac.jp ← 受取人のアドレス 250 root@compXX.tsuda.ac.jp... Recipient ok DATA ← 本文の始まり 354 Enter mail, end with "." on a line by itself This is a test mail from vermeer to compXX ← 本文(1行目) . ← 本文の終り 250 QAA00887 Message accepted for delivery quit ← 会話終了 221 compXX.tsuda.ac.jp closing connection Connection closed by foreign host.
compXX:/var/spool/mail/root |
|
vermeer% telnet compXX 25 Trying 133.99.10.10... Connected to compXX.tsuda.ac.jp. Escape character is '^]'. 220 compXX.tsuda.ac.jp ESMTP Sendmail 8.9.3/8.9.3; Sat, 10 Jun 2000 16:51:05 +0900 HELO renoir.tsuda.ac.jp ← 嘘のホスト名を名乗ってみる 250 compXX.tsuda.ac.jp Hello vermeer.tsuda.ac.jp [133.99.10.3], pleased to meet you MAIL FROM: nitta@tsuda.ac.jp ← 差出人のアドレス (他のホスト) 250 nitta@tsuda.ac.jp... Sender ok RCPT TO: root@compXX.tsuda.ac.jp ← 受取人のアドレス 250 root@compXX.tsuda.ac.jp... Recipient ok DATA ← 本文の始まり 354 Enter mail, end with "." on a line by itself This is a test mail from vermeer to compXX . ← 本文の終り 250 QAA00909 Message accepted for delivery quit ← 会話終了 211 compXX.tsuda.ac.jp closing connection
compXX:/var/spool/mail/rootへの追加 |
|
/etc/aliasesで別名を記述します。
aliasname: address[,address]
これはaliasnameが「別名」で、(単数または複数の)address に展開されることを表わしています。 aliasはネストできるのでaddressが別のaliasであっても構いません。
owner-aliasname: address
aliasname宛てのメイルにエラーが起きたとき、 そのエラーメッセージは owner-aliasnameに書かれている addressに送られます。 メイリング・リストにおいて有用な機能です。
aliasname: :include:pathname
aliasname宛てのメイルは、pathnameファイル中に 書かれているアドレス群に展開されます。
/etc/aliasesの例 Postmaster: root nobody: root root: nitta staff: nitta,ogawa@tsuda.ac.jp,kishi@tsuda.ac.jp
sendmailは一時ファイルや、再送待ちのメイルの情報を /usr/spool/mqueue に置きます。 各ファイルは、先頭の2文字がファイルの種類を表わし、 その後に続く番号が処理番号(ID)を表わしています。
D | データファイルの名前 |
H | ヘッダ情報。 "H"で始まる行の順序はそのまま送り出されるメイルのヘッダの順序になります。 |
R | メイルの受信者のアドレスのリスト。 ここでのアドレスは別名の展開は行われていません (別名の展開は配送処理中に行われます)。 |
S | メイルの発信者のアドレス。 |
E | エラーアドレス。この行があると、エラーが発生した場合の エラーメイルがそのアドレスに送られます。 |
T | qfファイルの生成時刻。 |
P | メッセージ・プライオリティ。小さいほど再送の処理が早く行われます。 |
M | (メイルの配送状態に関する)メッセージ。 この行はmailqコマンドによって表示されます。 |
dfPAA07229 test from compXX to klimt qfPAA07229 (xfPAA07229がある状態) V2 T928737150 K0 N0 P30057 I3/2/117011 Fb $_root@localhost Sroot RPFD:nitta@klimt.tsuda.ac.jp H?P?Return-Path:HReceived: (from root@localhost) by compXX.tsuda.ac.jp (8.9.1/8.9.1) id PAA07229 for nitta@klimt.tsuda.ac.jp; Mon, 7 Jun 1999 15:32:30 +0900 H?D?Date: Mon, 7 Jun 1999 15:32:30 +0900 H?F?From: root H?x?Full-Name: root H?M?Message-Id: <199906070632.PAA07229@compXX.tsuda.ac.jp> HTo: nitta@klimt.tsuda.ac.jp . qfPAA07229 (xfPAA07229が消えた状態) V2 T928737150 K928737200 N2 P120057 I3/2/117011 MDeferred: No route to host Fb $_root@localhost Sroot RPFD:nitta@klimt.tsuda.ac.jp H?P?Return-Path: HReceived: (from root@localhost) by compXX.tsuda.ac.jp (8.9.1/8.9.1) id PAA07229 for nitta@klimt.tsuda.ac.jp; Mon, 7 Jun 1999 15:32:30 +0900 H?D?Date: Mon, 7 Jun 1999 15:32:30 +0900 H?F?From: root H?x?Full-Name: root H?M?Message-Id: <199906070632.PAA07229@compXX.tsuda.ac.jp> HTo: nitta@klimt.tsuda.ac.jp .
DNS では「(ホストの)名前」から「IPアドレス」の情報(A)を引く ために使われますが、実は、それ以外の情報も調べることができます。
ある「名前」に関して DNSサーバに以下のタイプを問い合わせできます。
A | 1 | IPアドレス |
NS | 2 | ネームサーバ |
CNAME | 5 | エリアスの正式名 (Canonical Name) |
PTR | 12 | ドメイン名のポインタ |
HINFO | 13 | ホスト情報 |
MX | 15 | メール・エクスチェンジャ |
AXFR | 252 | ゾーン転送の要求 |
* | 255 | 全てのレコードを要求 |
メイルの宛先の「マシン名」や「ドメイン名」がわかると、 sendmailはDNSサーバにMXを問い合わせて、その結果得られた マシンにメイルをSMTPで送りつけます。