参考:
例
kyoma@blue.sci.hokudai.ac.jp
メールアドレスは,@ を含んだ文字列.ローカル部 (kyoma) とドメイン部 (blue.sci.hokudai.ac.jp) から成る.
ドメイン部は,最も後ろにある @ より後の文字列にあたる.それより前がローカル部.例えば,
God@heaven.af.mil
@heaven.af.mil
@at@@heaven.af.mil
のドメイン部はどれも heaven.af.mil となる.ローカル部はそれぞれ,God,空,@at@.
ドメイン部は大文字と小文字とを区別しない.以下はみな同じメールアドレス.
God@heaven.af.mil God@HEAVEN.AF.MIL God@Heaven.AF.Mil
メッセージはヘッダとボディで構成される.ボディとヘッダの境界は,空行(CRLF しかない行).
例
X-PostPet-STag: 1
X-PostPet-Switch: 0
Received: from blue.sci.hokudai.ac.jp (blue.sci.hokudai.ac.jp [133.87.45.26])
by mail.yabumi.com (8.8.8/3.6W) with SMTP id UAA00874
for <kyoma@yabumi.com>; Tue, 22 Jun 1999 20:10:07 -0700 (PDT)
From: kyoma@blue.sci.hokudai.ac.jp
Message-Id: <199906230310.UAA00874@mail.yabumi.com>
Received: (qmail 28663 invoked from network); 23 Jun 1999 03:02:22 -0000
Received: from skyblue.sci.hokudai.ac.jp (HELO ?133.50.133.146?) (133.50.133.146)
by blue.sci.hokudai.ac.jp with SMTP; 23 Jun 1999 03:02:22 -0000
Date: Wed, 23 Jun 1999 12:02:24 +0900
To: kyoma@yabumi.com
Subject: test
X-Mailer: Eudora-J(1.3.8.8r6-J16)
X-UIDL: 38cd772c9812707c58953ceb7e0dee27
Hello.
Bye.
各ヘッダフィールドは,フィールド名とフィールドボディから成る.コロン ": " がこれらを分かつ.フィールドには,"Return-Path", "Received", "Date", "From", "Subject", "Sender", "To", "Cc" などがある. フィールドボディは,複数の行にまたがることができ,2 行目以降の行は空白かタブで始めなければならない.
例
Subject: test
Received: from blue.sci.hokudai.ac.jp (blue.sci.hokudai.ac.jp [133.87.45.26])
by mail.yabumi.com (8.8.8/3.6W) with SMTP id UAA00874
for <kyoma@yabumi.com>; Tue, 22 Jun 1999 20:10:07 -0700 (PDT)
MTA がローカルに生成されたメールを受け取ると,以下のヘッダフィールドから発信者アドレスを見つける(qmail の場合).
Return-Path, From, Sender, Reply-To, Return-Receipt-To, Errors-To, Resent-Sender, Resent-From, Resent-Reply-To
同様に,以下のフィールドから受信者アドレスを見つける(qmail の場合).
To, Cc, Bcc, Apparently-To, Resent-To, Resent-Cc, Resent-Bcc
エンベロープには,発信者アドレスと受信者アドレスが書かれる.Bcc フィールドは削除される.
通常はエンベロープアドレスはヘッダにあるアドレスと一致している.しかし,そうでないこともある.異なるドメイン部をもつ複数のメールアドレスにメールを配るとき,MTA は,まずメールを複製し,それぞれにエンベロープを付ける.
(エンベロープ) djb から root へ From: djb To: root, god@brl.mil
(エンベロープ) djb から god@brl.mil へ From: djb To: root, god@brl.mil同じドメイン部をもつ複数のメールアドレスにメールを配るとき,MTA はメールをコピーしない.
(エンベロープ) djb から god@brl.mil と angel@brl.mil へ From: djb To: god@brl.mil, angel@brl.mil, joe, frde
qmail では,受信者アドレスを Delivered-To ヘッダフィールドに,発信者アドレスを Return-Path に記録する.また,Delivered-To をメール転送ループ検出に使う.
エンベロープの受信者アドレスのドメイン部が,その MTA の動いているホストを指しているとき,ローカル配送が行われ,そのホストの外を指しているとき,リモート配送によって目的のホストに送られる.
リモート配送のときには,メールのエンベロープにしたがって配送(返送)される.
エンベロープの受信者アドレスのドメイン部から Domain Name Server (DNS) の MX (Mail eXchanger) レコードを検索して,宛先(送り先)ホストを決定する.
メッセージがホスト間を移動するとき,送り先ホストとの接続手順には SMTP (RFC821) が使われる.そのとき,エンベロープ発信者は MAIL FROMコマンドにより,また,エンベロープ受信者はRCPT TOコマンドにより伝えられる.また,メッセージは DATA コマンドにより伝えられる.
例," | ","S | ","SN| ","NS| " でマークしたのはそれぞれ,受け手から送り手,送り手から受けて,送り手から DNS,DNS から送り手への通信.
SN| #P\05\0$#####\0\0#\0\0\0\0\0\0#yabumi#com\0\0#\0#
(ANY? yabumi.com.)
NS| \05#P\0#S#####\0#\0#\0#\0##yabumi#com\0\0#\0###\0#\0#\0#gp\0##MAIL#P
LAYA-US#com\0##\0#\0#\0#gp\0##YABUMI#-##\0#\0#\0#;#\0#\0\n#mail####\
0#\0#\0#gp\0##(##\0#\0#\0#gp\0##G#(\0#\0#\0#f!\0######G\0#\0#\0#f!\0
######^\0#\0#\0#;#\0#####
(NS MAIL.PLAYA-US.com., NS YABUMI.PLAYA-US.com., MX mail.yabumi.com.)
SN| #Q\05\0$\r####\0\0#\0\0\0\0\0\0#yabumi#com\0\0#\0#
(MX? yabumi.com.)
NS| \05#Q\0#######\0#\0#\0#\0##yabumi#com\0\0#\0###\0#\0#\0#;#\0#\0\n#ma
il####\0#\0#\0#gp\0##MAIL#PLAYA-US#com\0##\0#\0#\0#gp\0##YABUMI#B#*\
0#\0#\0#;#\0######=\0#\0#\0#f!\0######\\0#\0#\0#f!\0#####
(MX mail.yabumi.com.)
SN| #R\05\0)#s###\0\0#\0\0\0\0\0\0#mail#yabumi#com\0\0#\0#
(A? mail.yabumi.com.)
NS| \05#R\0#=#####\0#\0#\0#\0##mail#yabumi#com\0\0#\0###\0#\0#\0#;#\0###
###YABUMI#COM\0\0#\0#\0#gp\0##MAIL#PLAYA-US#8#1\0#\0#\0#gp\0##YABUMI
#L#G\0#\0#\0#f!\0######c\0#\0#\0#f!\0#####
(A mail.yabumi.com)
SN| #S\05\05N+###\0\0#\0\0\0\0\0\0#242#226#20#207#in-addr#arpa\0\0#\0#
(PTR? 242.226.20.207.)
S |
NS| \05#S\0#w#####\0#\0#\0#\0##242#226#20#207#in-addr#arpa\0\0#\0###\0#\
0#\0#Q#\0##mail#yabumi#com\0#226#20#207#in-addr#arpa\0\0#\0#\0#Q#\0#
#mail#playa-us#E#J\0#\0#\0#Q#\0##yabumi#r#m\0#\0#\0#Q#\0#######\0#\0
#\0#Q#\0#####
(PTR mail.yabumi.com.)
| 220 mail.yabumi.com ESMTP Sendmail 8.8.8/3.6W; Tue, 22 Jun 1999 20:10:07 -0700 (PDT)
S | HELO blue.sci.hokudai.ac.jp
| 250 mail.yabumi.com Hello blue.sci.hokudai.ac.jp [133.87.45.26], pleased to meet you
S | MAIL FROM:<kyoma@blue.sci.hokudai.ac.jp>
| 250 <kyoma@blue.sci.hokudai.ac.jp>... Sender ok
S | RCPT TO:<kyoma@yabumi.com>
| 250 <kyoma@yabumi.com>... Recipient ok
S | DATA
| 354 Enter mail, end with "." on a line by itself
S | Received: (qmail 28663 invoked from network); 23 Jun 1999 03:02:22 -0000
Received: from skyblue.sci.hokudai.ac.jp (HELO ?133.50.133.146?) (133.50.133.146)
by blue.sci.hokudai.ac.jp with SMTP; 23 Jun 1999 03:02:22 -0000
Date: Wed, 23 Jun 1999 12:02:24 +0900
To: kyoma@yabumi.com
From: kyoma@blue.sci.hokudai.ac.jp
Subject: test
X-Mailer: Eudora-J(1.3.8.8r6-J16)
test.
.
| 250 UAA00874 Message accepted for delivery
S | QUIT
| 221 mail.yabumi.com closing connection
メッセージがホストからホストへリレーされるたびに,新しい Received フィールドがメッセージヘッダに加えられる.
"from" domain 送り出したホスト "by" domain 受け取ったホスト "via" atom 物理的なパス "with" atom リンク・メールプロトコル "id" msg-id 受け取り手のメッセージID "for" addr-spec 元々の受信者アドレス
例
Received: from blue.sci.hokudai.ac.jp (blue.sci.hokudai.ac.jp [133.87.45.26])
by mail.yabumi.com (8.8.8/3.6W) with SMTP id UAA00874
for <kyoma@yabumi.com>; Tue, 22 Jun 1999 20:10:07 -0700 (PDT)
ローカル配送においては,エンベロープの受信者アドレスのローカル部によって配送先が決められる.これにより,ユーザのディレクトリ・ファイルなどに配られる.
ローカル配送の制御にはホームディレクトリの .qmail ファイル(qmail のばあい)や .forward ファイル(sendmail のばあい)が使われる.これにより,届いたメールの転送などが制御される.
転送されたメッセージは,以下のようなフィールドを加えられている.
Resent-Sender, Resent-From, Resent-Reply-To, Resent-To, Resent-Cc, Resent-Bcc, Resent-Date, Resent-Message-ID
ローカルなメールの配達先ディレクトリ・ファイルを直接読むのではなく,POP, APOP, IMAP といったプロトコルを使って,リモートのメールサーバ上のディレクトリ・ファイルを読むような MUA もある(パソコンのはこれにあたる).
こうした {POP,APOP,IMAP} プロトコルを使った通信には,これに対応した {POP,APOP,IMAP} クライアント (MUA) と,{POP,APOP,IMAP} サーバ(メールサーバにそうした機能をもたせる)が必要である.
例,APOP.S| でマークしたのがサーバからクライアントへの通信.
S| +OK <27969.930028995@blue.sci.hokudai.ac.jp>
| APOP kyoma 39db6086a2177820774b3f07befaf946
S| +OK
| STAT
S| +OK 1 467
| LIST 1
S| +OK 1 467
| RETR 1
S| +OK
S| Return-Path: <kyoma@blue.sci.hokudai.ac.jp>
Delivered-To: kyoma@blue.sci.hokudai.ac.jp
Received: (qmail 27963 invoked from network); 22 Jun 1999 05:23:14 -0000
Received: from skyblue.sci.hokudai.ac.jp (HELO ?133.50.133.146?) (133.50.133.146)
by blue.sci.hokudai.ac.jp with SMTP; 22 Jun 1999 05:23:14 -0000
Date: Tue, 22 Jun 1999 14:23:14 +0900
To: kyoma@blue.sci.hokudai.ac.jp
From: kyoma@blue.sci.hokudai.ac.jp
Subject: tes
X-Mailer: Eudora-J(1.3.8.8r6-J16)
tes
.
| DELE 1
S| +OK
| QUIT
S| +OK
例,POP.
S| +OK QUALCOMM Pop server derived from UCB (version 2.1.4-R3) at cosmos starting.
| USER kyoma
S| +OK Password required for kyoma.
| PASS xxxxxxxx
S| +OK kyoma has 1 message(s) (771 octets).
| STAT
S| +OK 1 771
| LIST
S| +OK 1 messages (771 octets)
S| 1 771
S| .
| RETR 1
S| +OK 771 octets
S| >From kyoma@blue.sci.hokudai.ac.jp Tue Jun 22 13:05:45 1999
Received: from blue.sci.hokudai.ac.jp (blue.sci.hokudai.ac.jp [133.87.45.26])
by cosmos.sci.hokudai.ac.jp (8.8.8/3.6W) with SMTP id NAA10723
for <kyoma@cosmos.sci.hokudai.ac.jp>; Tue, 22 Jun 1999 13:05:45 +0900 (JST)
From: kyoma@blue.sci.hokudai.ac.jp
Message-Id: <199906220405.NAA10723@cosmos.sci.hokudai.ac.jp>
Received: (qmail 27776 invoked from network); 22 Jun 1999 04:04:27 -0000
Received: from skyblue.sci.hokudai.ac.jp (HELO ?133.50.133.146?) (133.50.133.146)
by blue.sci.hokudai.ac.jp with SMTP; 22 Jun 1999 04:04:27 -0000
Date: Tue, 22 Jun 1999 13:04:27 +0900
To: kyoma@cosmos.sci.hokudai.ac.jp
Subject: test
X-Mailer: Eudora-J(1.3.8.8r6-J16)
test
.
| DELE 1
S| +OK Message 1 has been deleted.
| STAT
S| +OK 0 0
| QUIT
S| +OK Pop server at cosmos signing off.
このような MUA がメールを発送するときは,「SMTP サーバ」として指定するメールサーバにメールを送る.この際には,SMTP が使用される.メールサーバは,エンベロープに従って配送する.
例," | ","S | ","SN| ","NS| " でマークしたのはそれぞれ,クライアントから(メール)サーバ,サーバからクライアント,サーバから DNS,DNS からサーバへの通信.
|
S |
SN| #N\05\03###\#\0\0#\0\0\0\0\0\0#26#45#87#133#in-addr#arpa\0\0#\0#
(PTR? 26.45.87.133.)
NS| \05#N\0#m##\##\0#\0#\0#\0##26#45#87#133#in-addr#arpa\0\0#\0###\0#\0#
\0#~@\0##blue#sci#hokudai#ac#jp\0#87#133#in-addr#arpa\0\0#\0#\0#~@\0
##nameserv#sys#@#O\0#\0#\0#~@\0##wsclark#huie#@#O\0#\0#\0#~@\0##name
serv2#w#n\0#\0#\0#~@\0##W####\0#\0#\0#~@\0##W#\n##\0#\0#\0#~@\0##W##
##\0#\0#\0#~@\0####R
(PTR blue.sci.hokudai.ac.jp.)
SN| #O\05\05###]#\0\0#\0\0\0\0\0\0#146#133#50#133#in-addr#arpa\0\0#\0#
(PTR? 146.133.50.133.)
NS| \05#O\0##o#]##\0#\0#\0#\0##146#133#50#133#in-addr#arpa\0\0#\0###\0#\
0#\0#~@\0##skyblue#sci#hokudai#ac#jp\0#50#133#in-addr#arpa\0\0#\0#\0
#~@\0##nameserv#sys#E#T\0#\0#\0#~@\0##wsclark#huie#E#T\0#\0#\0#~@\0#
#nameserv2#|#s\0#\0#\0#~@\0##W####\0#\0#\0#~@\0##W#\n##\0#\0#\0#~@\0
##W####\0#\0#\0#~@\0####R
(PTR skyblue.sci.hokudai.ac.jp.)
S | 220 blue.sci.hokudai.ac.jp ESMTP
| HELO [133.50.133.146]
S | 250-blue.sci.hokudai.ac.jp
250-PIPELINING
250 8BITMIME
| RSET
S | 250 flushed
| MAIL FROM:<kyoma@blue.sci.hokudai.ac.jp>
S | 250 ok
| RCPT TO:<kyoma@yabumi.com>
S | 250 ok
| DATA
S | 354 go ahead
| Date: Wed, 23 Jun 1999 12:02:24 +0900
| To: kyoma@yabumi.com
| From: kyoma@blue.sci.hokudai.ac.jp
| Subject: test
X-Mailer: Eudora-J(1.3.8.8r6-J16)
|
test.
.
S | 250 ok 930106942 qp 28663
| QUIT
S | 221 blue.sci.hokudai.ac.jp