メールシステムの管理

待ち行列ファイルのフォーマット

sendmail プログラムは、一時待ち行列ファイルを待ち行列ファイル /var/spool/mqueue に格納します。そのような待ち行列ファイルのフォーマットはすべて xfAA99999 です。AA99999 はファイルの ID で、x は形式です。表 2-3 に、待ち行列ファイルの形式を示します。

表 2-3 待ち行列ファイルの形式

形式 

説明 

d

データファイル。メッセージの本体 (ヘッダーを除く) がこのファイルで保持される 

q

待ち行列制御ファイル。このファイルにはジョブの処理に必要な情報が含まれる 

t

一時ファイル。このファイルは、再構築時の qf ファイルのイメージ。再構築が終わると、ファイルは qf に名前変更される

x

セッションの実行中に発生した事項を示すトランスクリプトファイル 

qf ファイルでは、それぞれコード文字で始まる一連の行が入っています。各メッセージにはこれらの行のすべては含まれていませんが、表 2-4 に一覧表示します。

表 2-4 qf ファイルのコード

コード 

説明 

$

マクロ定義。特定のマクロ (現在は $r$s) の値は、待ち行列の実行段階に渡される

B

本体のタイプ。この行は本体のタイプを定義する。有効な値は 7BIT と 8BITMIME 

C

制御アドレス。構文は localuser:aliasname。この行に続く受信者アドレスは、配信が localuser (パスワードファイルかデータベースからのユーザー名) として実行されるようにフラグが立てられる。aliasname はこのアドレスに展開される別名の名前 (メッセージの出力用)

D

データファイル名。これらの行の 1 つしかない場合がある 

E

エラー受信者名。エラーメッセージは、発信者ではなくこのユーザーに送られる。この行はオプション 

F

フラグビット。これが r の場合は、応答メッセージであることを示し、w の場合は、メールの遅配を通知する警告メッセージが送られたことを示す

H

ヘッダー定義。任意の数の行を入れることができる。順序に意味があり、最終メッセージでの順序を示す。構文は、構成ファイルでのヘッダー定義と同じ 

L

内容の長さを計算するための情報 

M

-bp フラグがある sendmail を使ってプリントされるメッセージ行であり、一般に状態情報の格納に使用される。任意のテキストを入れることができる

P

待ち行列を並べるのに使用される現在のメッセージ優先順位を示す。番号が大きいと、優先順位は低くなる。メッセージが待ち行列にとどまると、優先順位は増大する。初期優先順位は、メッセージクラスおよびメッセージのサイズによって異なる 

R

受信者名。受信者ごとに 1 行ある。受信者名には通常、完全な別名があるが、ジョブが処理されると、その別名が再び付けられる。受信者名は qf ファイルの終端になければならない

S

発信者名。これらの行の 1 つしか入れられない 

T

ジョブ作成または依頼時間を秒単位で示す。ジョブがいつタイムアウトになるかを計算するのに使用される 

詳細は、第 3 章「sendmail 構成ファイルのカスタマイズ」を参照してください。

待ち行列は、sendmail.cf ファイルで指定された間隔 (デフォルトは 1 時間ごと) で自動的に実行されます。待ち行列は読み込まれて、ソートされ、それから sendmail はジョブをすべて順番に処理しようとします。sendmail プログラムは、ジョブがロックされているかどうかを調べるために最初にチェックを行います。ジョブがロックされていると、 sendmail はそのジョブを無視します。ジョブがロックされていなければ、sendmail はそれを処理します。

主ホストが数日間ダウンすると、待ち行列が過剰に大きくなることがあり、sendmail は待ち行列のソートに時間がかかります。待ち行列を一時的な場所に移動し、新しい待ち行列を作成することにより、これを防ぐことができます。ホストがサービスに戻されたら、古い待ち行列をあとで実行できます。