第七章 インターネットメールの仕組み(PDF)
1.E−MAIL
2.POPプロトコル
3.SMTPプロトコル
4.配達マン
TCP/IPネットワーク上で電子メールの送受信を行うためのアプリケーション。Mailのやり取りのプロトコルは
- SMTPプロトコル:Simple Mail
Transfer Protocol (送信用)単純郵便転送プロトコル
- POPプロトコル:Post Offoce
Protocol (受信用)郵便私書箱プロトコル
が用いられる。宛先は
- yasue@keyaki.cc.u-tokai.ac.jp
のように
で指定される。コンピュータはドメイン名を数値で認識するが、東海大学湘南校舎コンピュータセンターを例に取ると
であった。さて、TCP/IPはどこで役割をはたしているのであろう?もちろん、インターネットにデータを流すために、TCP/IPに従ってメール(データ)を送ることになる。
常時、インターネットに接続されていれば私書箱など不要で、直接相手のコンピュータにメールを届ければよい。しかし、PCなど電源を切ったりすると、
切っていてはメールが届かず破棄される。そこで常時接続してある
をつくって、メールを蓄積しておき、欲しいときに私書箱から取り出すことになる。これを
という。
BさんからAさんにメールが届く場合
まず、BさんからAさんのメールアドレス(例えば、AAA@BBB.CCC.co.jp)にメールを送る。指定されたアドレスまでそれぞれのサーバのsendmailが順繰り転送してゆき、Aさんを担当するPOPサーバ(のハードディスク)にメールが蓄えられる。一方、Aさんが定期的に(メールソフトで)メールをチェックしていれば、POPサーバにメールがあるかどうか問い合わせ、その時点で蓄えられているメールは、
Bさんからのメールも他からのメールすべてAさんのコンピュータ(のハードディスク)に転送される。
POPサーバによるメール転送
- (1)Aさんは、メールがきているかどうかPOPサーバに問い合わせる
- (2)POPサーバはAさんかどうかを、IDとパスワードを要求して認証確認をする
- (3)メールはすべてAさんのコンピュータに転送される
- +OK POP3 keyaki v4.46 server ready(開始)
- POPサーバにコマンドを送出 [USER yasue](認証)
- POPサーバにコマンドを送出 [PASS ?????]
- POPサーバにコマンドを送出
[STAT]
- POPサーバにコマンドを送出
[UIDL]
- POPサーバにコマンドを送出 [LIST
1]
- POPサーバにコマンドを送出 [RETR
1]
- [retr]"Aaa Unknown" aaa@ta2.so-net.ne.jp
- POPサーバにコマンドを送出 [LIST
2]
- POPサーバにコマンドを送出 [RETR
2]
- [retr]Bbb Unknown" B@scc.u-tokai.ac.jp (Bさんより)
- POPサーバにコマンドを送出 [LIST
3]
- POPサーバにコマンドを送出 [RETR
3]
- [retr]"Ccc Unknown" ccc@ruby.ocn.ne.jp
- POPサーバにコマンドを送出 [LIST
4]
- POPサーバにコマンドを送出 [RETR
4]
- [retr]Ddd Unknown" ddd@mail.interq.or.jp
- POPサーバにコマンドを送出 [LIST
5]
- POPサーバにコマンドを送出 [RETR
5]
- [retr]"Eee Unknown" eee@mb.infoweb.ne.jp
- POPサーバにコマンドを送出 [LIST
6]
- POPサーバにコマンドを送出 [RETR
5]
- [retr]"Fff Unknown" fff@da2.so-net.ne.jp
- POPサーバにコマンドを送出
[QUIT](終了)
発信のほうは、より簡単である。発信用のプロトコル
は発信を担当し送りっぱなしである。以前、インターネット専用回線は非常に高価で、常時接続されていないときには、定期的に電話回線で接続し一括してメールを送っていた。そのため、次回に電話回線が繋がるまで、送信メールを一時的にためておくサーバ(常時電源が入って24時間稼動している)
が必要となる。このような定期的・自動的に通信を行うためのプロトコルを
- UUCPプロトコル(Unix to Unix CoPy
Protocol)
という。
AさんからBさんにメールを送る場合
- SMTPサーバの応答=220
keyaki.cc.u-tokai.ac.jp ESMTP Sendmail
8.8.8/ogata-cc8; Mon, 5 Jul 1999 01:56:49 +0900 (JST)
- SMTPサーバにコマンドを送出
[HELO home]
- SMTPサーバからの応答 [250
keyaki.cc.u-tokai.ac.jp Hello ppp12.cc-max.cc.u-tokai.ac.jp [150.7.77.111], pleased to
meet you]
- SMTPサーバにコマンドを送出
[RSET]
- SMTPサーバからの応答 [250 Reset
state]
- SMTPサーバにコマンドを送出 [MAIL
FROM: A@keyaki.cc.u-tokai.ac.jp] (Aさんより)
- SMTPサーバからの応答 [250 A@keyaki.cc.u-tokai.ac.jp... Sender ok] (Aさんより)
- SMTPサーバにコマンドを送出 [RCPT
TO: B@scc.u-tokai.ac.jp] (Bさんへ)
- SMTPサーバからの応答 [250 B@scc.u-tokai.ac.jp... Recipient ok] (Bさんへ)
- SMTPサーバにコマンドを送出
[DATA]
- SMTPサーバからの応答 [354 Enter
mail, end with "." on a line by itself]
- SMTPサーバにコマンドを送出 [.]
- SMTPサーバからの応答 [250 BAA02440
Message accepted for delivery]
- SMTPサーバにコマンドを送出
[QUIT]
- SMTPサーバからの応答 [221
keyaki.cc.u-tokai.ac.jp closing connection]
E−mailは、大体は相手に届く。たまに、送れて届いたりする。相手アドレスへの「配達マン」の役割をする
と呼ばれるプログラムがメールサーバで必ず稼動しており、E−mailを
に送っていく。最初に送りつけようとしたサーバが通信不可能なときには、
していく。極端な場合、東京から大阪にメールが届くのに、アメリカ経由で大阪に届くこともありゆる。
|