メールのロギング

sendmail コマンドは、syslogd デーモンを通してメール・システムのアクティビティーを記録します。

ロギングを行うには、syslogd デーモンを構成して始動しておかなければなりません。 つまり、/etc/syslog.conf ファイルに、次のようなコメント行でない行を入れておく必要があります。

mail.debug           /var/spool/mqueue/log

この行がコメント行になっている場合は、任意のエディターを使用して変更します。パス名が正しいことを確認してください。 syslogd デーモンの実行中に /etc/syslog.conf ファイルを変更した場合は、コマンド・ラインに次のコマンドを入力して syslogd デーモンをリフレッシュします。

refresh -s syslogd

/var/spool/mqueue/log ファイルが存在しない場合は、次のコマンドを入力してこのファイルを作成しておく必要があります。

touch /var/spool/mqueue/log

ログ・ファイル内のメッセージは、次のフォーマットになっています。

システム・ログ内の個々の行は、タイム・スタンプ、それを生成したマシンの名前 (ローカル・エリア・ネットワークを介した複数のマシンからのログの場合)、「sendmail:」というワード、およびメッセージで構成されます。 ほとんどの メッセージは、一連の定義名 = 値 のペアで構成されます。

メッセージの処理時に記録される最も一般的な行は、受信行と送達試行行の 2 つです。 受信行には、メッセージの受信が記録され、1 つのメッセージにつき 1 行が記録されます。 一部のフィールドは省略される場合があります。 それらのメッセージ・フィールドは次のとおりです。

項目 説明
from エンベロープ送信側のアドレスを指定します。
size メッセージのサイズをバイト単位で指定します。
class メッセージのクラス (数値優先順位) を指定します。
pri 初期のメッセージ優先順位 (キューのソートに使用される) を指定します。
nrcpts そのメッセージのエンベロープ受信側の数 (別名付けと転送を行ったあとの) を示します。
proto メッセージの受信に使用するプロトコル (例えば、ESMTP または UUCP) を指定します。
relay ここに指定したマシンからそのメッセージを受信しました。

送達試行行は、送達が 1 回試みられるたびに 1 行ずつ記録されます (したがって、送達が据え置かれたり受信側が複数の場合などには、1 つのメッセージにつき複数の行が記録されます)。 フィールドは次のとおりです。

項目 説明
to このメール・プログラムへ渡された受信側をコンマで区切ったリストが入っています。
ctladdr 制御側ユーザー、つまり、送達に使用する証明書のオーナーであるユーザーの名前を指定します。
delay このメッセージの受信時刻から送信時刻までの合計遅延時間を指定します。
xdelay この送達試行に要した時間量を指定します。
mailer この受信側への送達に使用されたメール・プログラムの名前を指定します。
relay この受信側を実際に受け入れた (またはリジェクトした) ホストの名前を指定します。
stat 送達状況を指定します。

このような大量の情報が記録されることがあるため、ログ・ファイルは連続したレベルに並べられます。 最下位のレベル 1 では、非常に異常な状況だけが記録されます。 最上位のレベルでは、重要でないイベントも記録されます。 慣例的に、10 以下のログ・レベルの情報が有用と見なされます。 64 を超えるログ・レベルは、デバッグ用に予約されています。 11 から 64 のレベルは、詳細情報用に予約されています。

sendmail コマンドがログ・ファイルに記録するアクティビティーのタイプは、/etc/mail/sendmail.cf ファイル内の L オプションで指定します。