「ポート番号とプロトコルの種類 (サービスの種類) が対応しているのなら、適切なポート番号を指定してやることによって、この『数あて クライアント』でも、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」を選択してください。
もしあなたが Outlook Express を使っているなら、Outlook Express を起動し、「ツール」→「アカウント」で「メール」ページを選び、自分が使っているアカウントをクリックして「プロパティ」を押し、「サーバー」のページを開くと、そこに載っています。Outlook Express 以外のメーラを使っている場合も、同様の方法で調べることが出来ます。
これで POP3 サーバへ接続する準備ができましたが、実際に POP3 サーバに接続する前に、POP3 プロトコル (やりとりの手順) で定められている内容 (の概略) を知っておきましょう。
POP3 プロトコルには、次のコマンドがあります。
コマンド名 | 内容 | サーバからの回答例 |
---|---|---|
USER <ユーザ名> | 「自分が何者か」をサーバに知らせる。サーバに接続したら最初に送るべきコマンド。 |
|
PASS <パスワード> | パスワードをサーバに送る。「USER」の次に送るべきコマンド。 |
|
QUIT | 接続を切断する。 |
|
LIST | 自分宛ての電子メール の大きさの一覧を表示させる。右は、2通の e-mails がある例。 |
|
RETR <番号> | 指定された番号の電子メールを表示させる。 |
|
DELE <番号> | 指定された番号の電子メールを削除する。(使い方を誤ると被害が大きいコマンドなので、手動ではなるべく使わないで下さい。) |
|
では、自分の 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) もここから辿っていって読むことが出来ます。
POP3 に対応した、電子メールを受信するだけ (もちろん送信も出来ないし、サーバに溜まった 電子メールの削除も出来ない) のメーラを作ってください。