参考:
例
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