Post Office Protocolは、メールサーバー から自分のメールを取り出す時に使用するメール受信用プロトコルです。
以下ではtelnetコマンドで、POP3サーバに接続して、メールを確認しています。
telnetコマンドは、サーバマシンを遠隔操作(Remote Control)するコマンドですが、
実質的には、キー入力した文字列をサーバへ送信し、受信した文字列を表示しているだけです。
このtelnetコマンドの送受信の機能を利用して、POP3サーバ(メール受信サーバ)へ接続して、
やり取りをしている例です。
ウェルノンポートは110番で、mail.scc01の名前のサーバに接続する部分から始まっています。
(1)認証ステップ:POP3サーバに接続すると、『+OK』から始まる文字列が返されます。
そこで、ユーザーのメールボックスをアクセスするための認証を行わなければなりません。
クライアントから『USER 』の後にユーザー名が続く1行を送ります。
『+OK』から始まる文字列が返されば、パスワードを『PASS 』に続く1行にして送ります。
『+OK』から始まる文字列が返されれば、認証が終わり、各コマンドが送れます。
(2)認証が終われば、『QUIT』コマンドを送るまで、会話的なやり取りが可能になります。
(■が入力です。また『』の部分は、ユーザーに合わせた変更が必要な箇所です。)
telnet mail.scc01 110 +OK POP3 scc.sundaidenshi.ac.jp v2001.80 server ready USER 『自分のユーザー名』 +OK User name accepted, password please PASS 『パスワード』 +OK Mailbox open, 1 messages STAT +OK 1 529 LIST +OK Mailbox scan listing follows 1 529 . RETR 1 +OK 529 octets Return-Path: <xyz@sundaidenshi.ac.jp> Received: from xx.xx.xx.xx (pc-4-193 [192.168.4.193]) by メール送信元SMPTサーバドメイン名表示部 (8.12.6/8.12.6) with SMTP id i4O0bmSw030531 for <xyz@sundaidenshi.ac.jp>; Mon, 24 May 2004 09:37:48 +0900 Date: Mon, 24 May 2004 09:37:48 +0900 From: xyz@sundaidenshi.ac.jp Message-Id: <200405240037.i4O0bmSw030531@メール送信元SMPTサーバドメイン名表示部> Subject: This is Test Mail Status: HELO xx.xx.xx.xx MAIL FROM:<xyzAAAAAA.@sundaidenshi.ac.jp> How are you? I am fine. Well, let's see it again. . QUIT +OK Sayonara
実際のメーラー(mailer)の内部では、このようなやり取りでメールを受信しているわけです。
なお、メーラーはMUA(Message User Agent)と呼ばれることもあります。
以下に、POPサーバに要求する文字列の代表的コマンドを挙げます。
コマンド | 意味 |
---|---|
USER ユーザー名 | 認証するユーザー名を指定する |
PASS パスワード | 認証するユーザーのパスワードを指定する |
STAT | メールボックス内にあるメール個数と、全体のバイト数を要求する。 |
LIST | メールボックス内のメール連番号と、そのサイズが並ぶ行複数行を要求する。 『.』(ピリオド)までが応答文字列になる |
RETR メールボックス内のメール連番号 | 指定されるメール連番号のメール内容を要求する。 『.』(ピリオド)までが応答文字列になる |
DELE メールボックス内のメール連番号 | 連番号で指定されるメールの削除であるが、QUITコマンドでセッションを終了するまで実際の削除は行われない。 |
QUIT | 終了コマンド |
NOOP | 何もしない |
RSET | 認証確立後発生した削除処理を全て取り消す |
以上までは必須で以下はオプションです。 | |
APOP ユーザー名 | チャレンジレスポンス方式でユーザー認証を行う |
TOP メッセージ番号 Line数 | 指定されたメッセージ番号のメッセージの指定されたLine分だけボディを表示する |
UIDL [メッセージ番号] | 一意なIDリスト(Unique IDentification ListingL)の一覧を表示する |
各コマンドは CR-LF (\r\n)で終端させます。
サーバレスポンスの1行目は必ずステータスを示しています。
ステータスは単純で、正常(+OK)かエラー(-ERR)かしか存在しせず、
エラー番号は定義されていません。次の構造です。
[+OK|-ERR] ステータス・メッセージやパラメータ
なお、POP3関連のRFC
(IETF:Internet Engineering Task Force)を以下に示します。
RFC1939 | (STD53) Post Office Protocol - Version 3 |
RFC1734 | POP3 AUTHentication command |
RFC2195 | IMAP/POP AUTHorize Extension for Simple Challenge/Response |
RFC2449 | POP3 Extension Mechanism |