以下にSMTPセッションの一例を示す。
# C: 入力するもの # S: サーバからの応答(コードのみ示す)
220
HELO nagano.ac.jp
250
MAIL from: xxxx@nagano.ac.jp
250
RCPT to: xxxx@nagano.ac.jp
250
DATA
354
aldsfalwefaw
aoifeoaejfoawejf
. # ピリオド(だけの行)が入力されると本文入力終了
250
QUIT # 切断
(HTTPには数種類のメソッドが用意されているが、ここでは 最もシンプルな GET メソッドに限定して解説する)
GET
リクエストの文法は、
GET オブジェクト(ファイル) HTTPのバージョン
である。例えば、
GET / HTTP/1.0
(と送り、その後に空行を1つ送ることでリクエストが完結する)で、
相手サーバの管理する トップページのデータを要求することができる。
一般には、第一引数は、/ から始まるパス名(ディレクトリ名とファイル名を
連結したもの; ブラウザのアドレスバーに表示される URLの、最初の /
から右にあるもの全体)である。
本学のようなプロキシ経由で外部と接続している環境では、 外部のサーバから資源を取得する際には、プロキシに接続した上で、 第一引数として、要求すべき資源の URL を渡す。
> nc pemail.nagano.ac.jp pop3
+OK Dovecot ready. # 接続成功
USER j17000xx # 自分のユーザ名を送る
+OK
PASS zzzzzzzzz # パスワード(平文で送られる)
+OK Logged in. # 認証成功 以下、様々なコマンドが使える
LIST # メール一覧を表示せよ
+OK 12 messages:
1 94525
2 36685
3 36163
4 114392
5 26489
6 13214
7 29739
8 77072
9 7926
10 73956
11 26941
12 72296
RETR 12 # 番号を指定して内容を表示させる
.......... # (メールの内容が表示される)
,AwIU$5$l$k2DG=3D@-$,=1B(B=0D=0A=1B$B!!!!$4$6$$$^$9!#$"$i$+$8$a$4=
N;>5$/$@$5$$!#=1B(B=0D=0A=0D=0ACopyright(C)=1B$B!"=1B(BSB=1B$B%/%=
j%(%$%F%#%V3t<02q<R!"7G:\5-;v$NL5CGE>:\$r6X$8$^$9!#=1B(B=0D=0A
.
QUIT
+OK Logging out.
を(手打ちで)「話して」みる。 (telnetでSMTP、 telnetでHTTP、 telnetでPOP3 を参考に、 各自、自分で試してみて下さい。)
以下のプログラムを動かしてみて、
HTTPとSMTPの概要の理解を試みて下さい。
(3,4ではメールアドレスの部分を自分のアドレスに書き換えて使って下さい)