[PREVIOUS CHAPTER]
[NEXT CHAPTER]
4 内部構造
4.1 ヘッダ・フィールドのフォーマット
../internals 7.0
fml は配送メールおよびコマンドの結果を知らせるメールなどのヘッダのフィー
ルドの成形を行います。またあらかじめ設定されたフィールドのみを通すよう
に設定できます。例えば、フィールドの並び順は @HdrFieldsOrder という変
数配列に従い、@HdrFieldsOrder に出てくるフィールドのみを通過させます。
X-Faces のようなうざったいフィールドは通さない などのようにです。
$PASS_ALL_FIELDS_IN_HEADER という変数を指定すると @HdrFieldsOrder にな
いフィールドも通過させます。@HdrFieldsOrder にないフィールドは入力の順
番でヘッダに現れます。2.2以降のデフォールトでは1です(素通し)。
$PASS_ALL_FIELDS_IN_HEADER = 1; (path through, 1 is default)
* fml 2.1 is "0", fml 2.2 is "1".
ただし Received: と Return-Receipt-To: は切落とします($SKIP_FIELDS と
いう変数で定義されているフィールドは通さない)。この2つのフィールドを
通すには明示的に@HdrFieldsOrder に定義する必要があります。
Return-Recipient-To は当然として Received: は MAX HOP を越える場合に備
えてです。
フィールドの種類と順番に凝る場合:-)は @HdrFieldsOrder を config.ph 等
で定義しなおしてください。
@HdrFieldsOrder のデフォールトは (1998/08/10, 2.2BETA#1)
@HdrFieldsOrder = # rfc822; fields = ...; Resent-* are ignored;
('Return-Path', 'Received',
'Date', 'Posted', 'X-Posted', 'X-Original-Date',
'From', 'Reply-To', 'Subject', 'Sender',
'To', 'Cc', 'Errors-To', 'Message-Id', 'In-Reply-To',
'References', 'Keywords', 'Comments', 'Encrypted',
':XMLNAME:', ':XMLCOUNT:', 'X-MLServer',
'XRef', 'X-Stardate', 'X-ML-Info',
'X-Mailer',
':body:', ':any:',
'X-Authentication-Warning',
'Mime-Version', 'Content-Type', 'Content-Transfer-Encoding',
'Content-ID', 'Content-Description', # RFC2045
'Precedence', 'Lines');
のように定義されています。X-Authentication-Warning は PICKY_HELO_CHECK
(sendmail) 等で Security の Warning がつくので通すようにしました。
また @HdrFieldsOrder 中では
:body:
:any:
:XMLNAME:
:XMLCOUNT:
の特殊な変数が使われています。それぞれ
:body: $body を展開する場所
$SMTP_OPEN_HOOK や $HEAD_ADD_HOOK 等で独自ヘッダを
$body で定義した場合等に使われる(Backward Compatible)
:any: $PASS_ALL_FIELDS_IN_HEADER の時 @HdrFieldsOrder
に明示的に現れないフィールドを展開する場所
:XMLNAME: $XMLNAME を展開する (X-ML-Name: フィールド)
:XMLCOUNT: $XMLCOUNT を展開する (X-Mail-Count: フィールド)
のような特殊な目的に使われます。これらは互換性の趣が強い例外処理です。
[PREVIOUS CHAPTER]
[NEXT CHAPTER]