D-3 POP3

「ポート番号とプロトコルの種類 (サービスの種類) が対応しているのなら、適切なポート番号を指定してやることによって、この『数あて クライアント』でも、SMTPサーバや POP3 サーバなどにアクセスできるのではないか。」そう思った人がいるかも知れません。そして、事実それは可能です。

【練習問題】

ここでは、POP3 サーバ (あなた宛の 電子メールが届いて溜まっているサーバ) にアクセスしてみましょう。なお、大抵のサーバは、1回分のデータの終わりを「Chr(10)」で表すことになっています。プログラムの「送信」ボタンのイベントハンドラに、次のように書き加えて下さい。

// 「送信」ボタン
procedure TForm1.ButtonSendClick(Sender: TObject);
begin
  ClientSocket1.Socket.SendText(EditSend.Text + Chr(10)); // メッセージを送る
  EditSend.Text := ''; // メッセージ欄を空にする
end;

POP3 のポート番号は110なので、起動したら「ポート番号」に110を設定します。接続先には、あなたの POP3 サーバのアドレスを入力します。実習中の場合は、学生用のメールサーバ「c102sn09.iec.sgu.ac.jp」を選択してください。

コラム POP3 サーバのアドレスが分からない場合

もしあなたが Outlook Express を使っているなら、Outlook Express を起動し、「ツール」→「アカウント」で「メール」ページを選び、自分が使っているアカウントをクリックして「プロパティ」を押し、「サーバー」のページを開くと、そこに載っています。Outlook Express 以外のメーラを使っている場合も、同様の方法で調べることが出来ます。

これで POP3 サーバへ接続する準備ができましたが、実際に POP3 サーバに接続する前に、POP3 プロトコル (やりとりの手順) で定められている内容 (の概略) を知っておきましょう。

POP3 プロトコルには、次のコマンドがあります。

コマンド名 内容 サーバからの回答例
USER <ユーザ名> 「自分が何者か」をサーバに知らせる。サーバに接続したら最初に送るべきコマンド。
  • +OK
  • -ERR
PASS <パスワード> パスワードをサーバに送る。「USER」の次に送るべきコマンド。
  • +OK
  • -ERR
QUIT 接続を切断する。
  • +OK
  • -ERR
LIST 自分宛ての電子メール の大きさの一覧を表示させる。右は、2通の e-mails がある例。
  • +OK 2 messages (320 octets)
    1 120
    2 200
    .
  • -ERR
RETR <番号> 指定された番号の電子メールを表示させる。
  • +OK 120 octets
    〔e-mail 本文〕
    .
  • -ERR
DELE <番号> 指定された番号の電子メールを削除する。(使い方を誤ると被害が大きいコマンドなので、手動ではなるべく使わないで下さい。)
  • +OR
  • -ERR

では、自分の POP3 サーバに接続してみましょう。実習中の場合は、いざという時のために、教員や指導員にPOP3 サーバへの接続に立ち会ってもらって下さい。実習中でなく自習中であったり、あるいは自宅のパソコンで学習を行っている場合は、仕方がないのであなた1人で接続することになります。この場合、下のコラムで紹介しているPOP3 の RFC を読み終えてから接続を実行するようにして下さい。

 接続に成功するとPOP3サーバから応答メッセージが返ってくるはずです。

コラム  プロトコルは誰がどのように定義したか

この POP3 のようなプロトコルは、誰か偉い人、あるいは一握りの人達が密室で決めたものではありません。最初はRFC (Request For Comment)「コメントをどうぞ、の意味」という提案書の形でその原型が提案されました。そしてそれがネットワーク研究者の間を回覧されて行く内に次々と (RFC が) バージョンアップされ、完成に至ったものなのです。ですから多くのネットワーク研究者の英知が結集されている訳です。RFC は英語で書かれますが、重要なものは日本語に訳されています。<http://www.se.hiroshima-u.ac.jp/~isaki/rfc/list.html> などで、主な RFC の日本語訳を入手することが出来ます。POP3 (RFC1939) もここから辿っていって読むことが出来ます。

【発展課題 D-1】

POP3 に対応した、電子メールを受信するだけ (もちろん送信も出来ないし、サーバに溜まった 電子メールの削除も出来ない) のメーラを作ってください。