戻る

3208:Headers, Precedence, and Trust

Headers

概要

ヘッダーは 以下のように 文字 H から 始めます設定ファイル(xxx.cf sendmail.cf 等において)の表現は

Hname: field
or
H?flags?name:field

name See RFC822

apparently-to	full-name	reply-to	return-receipt-to
bcc	in-reply-to	resent-bcc	sender
cc	keywords	resent-cc	subject
comments	mail-from	resent-date	text
content-length	message	resent-from	to
content-type	message-id	resent-message-id	via
date	posted-date	resent-reply-to	x400-received
encrypted	precedence	resent-sender	
errors-to	received	resent-to	
from	references	return-path

ヘッダー の 説明

名前         説明                  追加される条件
From:         発信者のアドレス        存在しないときに 追記
Received:     受信の記録              常時 追記

Received: はすでに 存在しても その度に 追記されていく

From: ヘッダー

様式

HFrom: <$g>

<$g> の $g はなんだろう ということですが マクロには 2種類あるよう です つまり D で決められたものと sendmail さんが 独自に 決めるものがあり 今回の $g というのは 後者の場合です

DXtext
D{NANTARAKANNTARA}moziretu

$X
${NANTARAKANNTARA} 
の 形で使用する

これは 今回の 場合は エンベロープに現れる発信者アドレス

R$-     $@ $1@${HUB}

$1 に ユーザー(user)がはいるとすれば user@host.domain のような ハブマシン のホスト名とドメインが付記されたものが マクロ g に 設定されます

g   user@host.domain
 From :<$g>
 From : <user@host.domain>

の様に 書き換えられる。と云う事のようです

$ cat test.cf 
V10/Berkeley
D{REMOTE}local.net.gf
D{HUB}host.domain
...
R$-     $@ $1@${HUB}
R$-@$=w $@ $1@${HUB}
R$-@$=w.$m      $@ $1@${HUB}
/* そうして   */
$ /usr/sbin/sendmail -Ctest.cf -bt
Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,Hubset user
3                  input: user
3                returns: user
Hubset             input: user
Hubset           returns: user @ host . domain
> /quit

Received: ヘッダー

様式

HReceived: by $j;$b

この場合 by は 必須です $j というのは

$ /usr/sbin/sendmail -Ctest26.cf -bt -d0.1 < /dev/null
...
 (canonical domain name) $j = nyanco.kingdom.of.cat
...

完全なドメイン形式のホスト名 というようです マクロ b には ARPAnet 形 式 (曜日、月、日、時間、年、タイムゾーン形式)の現在の日付だそうです

試験

新しい cf ファイル

ヘッダーを追記しものは 以下のようになる。

$ cat test27.cf 
V10/Berkeley
D{REMOTE}coco.kingdom.of.cat
D{HUB}koro.catland.kingdom
Cwtuika
Fw -o /home/aruyuser/v_work/atest.cw
O QueueDirectory=/home/aruyuser/v_work/fakemqueue
O Timeout.queuewarn=4h
O Timeout.queuereturn=5d
O DeliveryMode=background
O TempFileMode=0600
O DefaultUser=1:1
O LogLevel=9
O OldStyleHeaders=True
O BlankSub=.
HFrom: <$g>
HReceived: by $j; $b
Mhub,   P=[IPC], S=Hubset, R=0, F=mDFMuXa, T=DNS/RFC822/SMTP, A=IPC $h
Mlocal, P=/bin/mail, F=lsDFMAw5:/|@rmn, S=0, R=0, A=mail -d $u 
S0
R@$+    $#error $: Missing user name
R$+     $#hub $@${REMOTE} $:$1
S3
R$* <> $*       $n                              handle <> error address
R$* < $* < $* > $* > $*         $2 < $3 > $4    de-nest brackets
R$* < $* > $*   $2                              basic RFC822 parsing
SHubset
R$-     $@ $1@${HUB}
R$-@$=w $@ $1@${HUB}
R$-@$=w.$m      $@ $1@${HUB}

送信側での 処理

nyanco.kingdom.of.cat[192.168.38.231]側で 送信する

$ /usr/sbin/sendmail -Ctest27.cf aruyuser
Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE
To:aruyuser
Subject: Headder

change Disply mode?
.

log 確認

# cat messages 
Oct 11 15:38:57 nyanco sendmail[354]: k9B6cCag000354: \
from=aruyuser, size=44, class=0, nrcpts=1, relay=aruyuser@localhost
Oct 11 15:38:57 nyanco identd[358]: Connection from coco.kingdom.of.cat
Oct 11 15:38:57 nyanco identd[358]: \
from: 192.168.38.123 ( coco.kingdom.of.cat ) for: 32808, 25
Oct 11 15:38:57 nyanco sendmail[356]: k9B6cCag000354: \
to=aruyuser, ctladdr=aruyuser (1000/100), \
delay=00:00:45, xdelay=00:00:00, mailer=hub, pri=30044, \
relay=coco.kingdom.of.cat. [192.168.38.123], \
dsn=2.0.0, stat=Sent (k9B6cvI5003961 Message accepted for delivery)

受信側での 確認

coco.kingdom.of.cat[192.168.38.123]側 コンソール (画面)に 表示され る場合が有る

# 
New mail for aruyuser@koro has arrived:
----
From: aruyuser@koro.catland.kingdom
Subject: Headder
change Disply mode?

----

log 確認

# cat messages 
Oct 11 15:38:57 koro sendmail[3961]: k9B6cvI5003961: \
from=<aruyuser@koro.catland.kingdom>, size=135, class=0, nrcpts=1, \
msgid=<200610110638.k9B6cvI5003961@koro.catland.kingdom>, \
proto=ESMTP, daemon=MTA, \
relay=aruyuser@nyanco.kingdom.of.cat [192.168.38.231]

Oct 11 15:38:57 koro in.comsat[3964]: connect from localhost
Oct 11 15:38:57 koro sendmail[3962]: k9B6cvI5003961: \
to=<aruyuser>, ctladdr=<aruyuser@koro.catland.kingdom> (1000/100), \
delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30418, dsn=2.0.0, stat=Sent

受信メールの 確認

# cat /var/spool/mail/aruyuser 
From aruyuser@koro.catland.kingdom  Wed Oct 11 15:38:57 2006
Return-Path: <aruyuser@koro.catland.kingdom>
Received: from nyanco.kingdom.of.cat (aruyuser@nyanco.kingdom.of.cat [192.168.38.231])
        by koro.catland.kingdom (8.13.4/8.13.4) with ESMTP id k9B6cvI5003961
        for <aruyuser>; Wed, 11 Oct 2006 15:38:57 +0900
Date: Wed, 11 Oct 2006 15:38:57 +0900
From: aruyuser@koro.catland.kingdom
Message-Id: <200610110638.k9B6cvI5003961@koro.catland.kingdom>
Received: by nyanco.kingdom.of.cat; Wed, 11 Oct 2006 15:38:12 +0900
To: aruyuser
Subject: Headder

change Disply mode?

以下の参考の もの(Headers は cf ファイルには 無かったもの)より Received: by ...の ものが 増えている。

From aruyuser@koro.catland.kingdom  Wed Oct 11 09:30:07 2006
Return-Path: <aruyuser@koro.catland.kingdom>
Received: from nyanco.kingdom.of.cat (aruyuser@nyanco.kingdom.of.cat [192.168.38.231])
	by koro.catland.kingdom (8.13.4/8.13.4) with ESMTP id k9B0U7sb003698
	for <aruyuser>; Wed, 11 Oct 2006 09:30:07 +0900
Date: Wed, 11 Oct 2006 09:30:07 +0900
From: aruyuser@koro.catland.kingdom
Message-Id: <200610110030.k9B0U7sb003698@koro.catland.kingdom>
To: aruyuser
Subject: check test

Wed Oct 11 09:29:44 JST 2006
may be good!

それがどうした といわれても 困るのですが!

ハブ の場合

( ハブ というても Hubset というものでは ありません ここで 色々テストし ているのは client.cf に 相当するもので hub.cf ではないと云う事です hub.cf ていうのは なんね? というのは 無しです もっと色々 複雑な cf ファイルです としときます) 今の From: ヘッダー の 場合に 比べて ハブ の場合は もっと 複雑な もの のようです

From: $g $?x($x)$.
$?              if
x               マクロ x が値をもつならば
 ($x)             これを定義に 追加する
$.              endif

マクロ x には 発信者のフルネームが値として入ります
フルネームが見付からない場合は $x は 値がないことになり
省略される  $x が値をもてば フルネームが括弧内に追記されます

条件式 として

if        else     endif
 |         |        |
 v         v        v
$?x  text1 $| text2 $.

の 様に使用される 部分の $| が 無い場合 のパターン と云う事の 様です ウクライナ をみれば 良いでしょう

http://www.unix.org.ua/orelly/networking/sendmail/ch31_06.htm

戻る

にゃんたろう 拝!
2006年10月11日 (水) 21:21:18 JST 作成

Copyright © 2004.-2007. nyantarou All Rights Reserved.