Home Top Up


qmail reference

qmail-header (5)

(format of a mail message)


[概要]

メール・メッセージの形式について。

[説明]

それぞれのメール・メッセージの先頭には、 高度に構造化されたヘッダーがあります。 以下に記載されている通り、 多くのプログラムが、確かな情報を運ぶために、 ヘッダー存在を予測しています。 qmail-inject (8) の主な機能は、 それぞれの送信メッセージが適切なヘッダーを持つことを確認するためのものです。

■ MESSAGE STRUCTURE

メッセージは、 などを含んでいます。 各ヘッダー・フィールドは、 名前、コロン(:)、何らかの内容、改行などを持ちます。 フィールドの内容は、 数行に渡って、折り返してもかまいません。 折り返しの2行目からは、 スペース文字またはタブ文字で始まります。 フィールド名は、 スペース、タブ、コロン(:) などを含んではいけません。 空のフィールド名も、違法です。 qmail-inject (8) は、 印字できない文字でのフィールド名を許可しません。

フィールド名で、大文字と小文字は関係ありません。 subject、SUBJECT、SuBjEcT などは同じ意味を持ちます。

■ アドレス・リスト (ADDRESS LISTS)

確かなフィールドには、To 行のような、アドレス・リストが含まれます。

アドレス・リストは、 カンマ(,)で区切られた、幾つかのアドレスやアドレス・グループを含みます。

アドレス・グループは、 幾つかのテキスト、コロン(:)、アドレスのリスト、セミコロン(;)などを持ちます。 アドレスは、 幾つかの形式で表現することができます。 最も共通的な形式は、box@host です。

各アドレスは、ホスト名を含む必要があります。 qmail-inject (8) が単独のボックス名を認識した場合、 デフォルトのホスト名を付加します。

すべてのホスト名は、 完全修飾ドメイン名で指定します。 qmail-inject (8) は、 ドット(.)を含まないどんな名前にも、デフォルトのドメイン名を追加します。

qmail-inject (8) は、 プラス(+)記号で終わるどんな名前にも、 プラス・ドメイン名(plus domain name)を追加します。 プラス・ドメイン名は、/var/qmail/control/plusdomain ファイルで指定します。 ホスト名は、 ドットで区切られた10進数のアドレスで指定できます。 RFC 822 は、 発信源の経路を含めるため、 ブラケット([])で囲まれたメール・ボックス名を許しています。 しかし、qmail-inject (8) は、 アドレス以外のすべての発信源の経路を取り除きます。

■ 送信者アドレス (SENDER ADDRESSES)

qmail-inject (8) は、 次のようなフィールド内の送信者アドレス・リストを捜します。

SenderFromReply-To
Return-PathReturn-Receipt-ToErrors-To
Resent-SenderResent-FromResent-Reply-To

From フィールドが存在しない場合、 qmail-inject (8) は、 qmail-inject (8) を呼び出すユーザーの名前で、 新しい From フィールドを追加します。

RFC 822 では、 確かな送信者フィールドは1つのアドレスだけを含むことを要求します。 しかし、qmail-inject (8) は、この制限を強制しません。

■ 受取人アドレス (RECIPIENT ADDRESSES)

qmail-inject (8) は、 次のようなフィールド内の受取人アドレス・リストを捜します。

ToCcBccApparently-To
Resent-ToResent-CcResent-Bcc

各メッセージは、 To、Cc、Bcc のうち少なくとも1つを含まなければなりません。 qmail-inject (8) は、 どんな Bcc フィールドも削除しません。 To または Cc が存在しない場合、 qmail-inject (8) は、 行を追加します。

これは、RFC 822 にしたがいます。 メッセージが他のマシン上の sendmail (8) に渡されるといけないので、 qmail-inject (8) は、 奇妙な sendmail (8) の振る舞いに基づいて動作します。

■ 日付の刻印 (STAMPS)

各メッセージは、 RFC 822 で定義された正確な形式での日付を持つ、 Date フィールドを含まなければなりません。 もし必要なら、qmail-inject (8) は、 現在の GMT における日付で、 新しい Date フィールドを生成します。

各メッセージは、 Message-Id フィールドを含まなければなりません。 このフィールドは、 メッセージに関するユニークなワールドワイドの識別子です。 もし必要なら、qmail-inject (8) は、 新しい Message-Id フィールドを生成します。

他の重要なフィールドは、Received です。 メッセージがあるシステムから他のシステムに送られるときはいつも、 新しい Received フィールドがメッセージの先頭に追加されます。 qmail-inject (8) は、 どんな Received フィールドも生成しません。

■ 転送されたメッセージ (RESENT MESSAGES)

メッセージが次のようなフィールドを含む場合、 それは転送されたメッセージです。

Resent-SenderResent-FromResent-Reply-To
Resent-ToResent-CcResent-Bcc
Resent-DateResent-Message-ID

メッセージが転送された場合、 qmail-inject (8) は、 次のように振る舞いを変更します。

qmail-inject (8) は、 Bcc フィールドと同様に、 どんな Resent-Bcc フィールドも削除します。 Resent-To または Resent-Cc フィールドが存在しない場合、 qmail-inject (8) は、 適切な Resent-Cc 行を追加します。 To または Cc どちらも出現しない場合でも、 qmail-inject (8) は、 Cc 行を追加しません。

Resent-From フィールドが存在しない場合、 qmail-inject (8) は、 新しい Resent-From フィールドを追加します。 新しい From フィールドは追加しません。

Resent-Date がすでに出現していない場合、 qmail-inject (8) は、 Resent-Date を追加します。 Resent-Message-Id も同じです。 qmail-inject (8) は、 新しい Date または Message-Id フィールドを追加しません。

■ その他の機能 (OTHER FEATURES)

アドレスは、 スペースではなく、カンマ(,)で区切られます。 qmail-inject (8) が違法なスペースを認識した時、 カンマ(,)を挿入します。 qmail-inject (8) は、 すべての Return-Path ヘッダー・フィールドを取り除きます。

qmail-inject (8) は、 どんな Content-Length フィールドをも取り除きます。

[関連項目]

addresses (5)
envelopes (5)
qmail-inject (8)

[マニュアル・ページ]

日本語、 英語

▲ Top


(2003/02/08)