ちょっとした豆知識

メールの受信テスト

SMTPサーバーの接続試験に続いて、今度はPOPサーバーの接続試験を行ってみます。
こちらもtelnetを使うことで簡単に動きを見ることができます。

(1)POPサーバーへの接続と認証

telnetを使って、POPサーバーへ接続します。

# telnet localhost 110

Trying 127.0.0.1...
Connected to pop_test.
Escape character is '^]'.
+OK Teapop [0.3.7] - Teaspoon stirs around again <1196821840.47F53345@Llywellyn>

> USER test

+OK Welcome, do you have any type of ID?

※パスワードを指定します。APOPの場合は、APOPコマンドを入力

PASS *******

+OK I'm ready to serve you, Master.

(2)メールのリストを取得

下記の例ですと、469バイトのメールが1件あることになります。

> LIST

+OK These are my measures.
1 469
.

(3)メール内容の確認

PETRコマンドにメッセージ番号を続けることで、メッセージ番号のメールを表示させることができます。

> RETR 1

+OK 469
Return-Path:
X-Original-To: test@fulldigit.net
Delivered-To: test@fulldigit.net
Received: from smtp_test.fulldigit.net (smtp_test [127.0.0.1])

by smtp_test.fulldigit.net (Postfix) with ESMTP id 14CD12B0574
for ; Wed, 5 Dec 2007 11:47:05 +0900 (JST)

subject:Test Mail
from:test@fulldigit.net
to:test@xxx.co.jp
Message-Id: <20071205024723.14CD12B0574@smtp_test.fulldigit.net>
Date: Wed, 5 Dec 2007 11:47:05 +0900 (JST)

test mailbody
.

(4)メールの削除

DELEコマンドにメッセージ番号を続けることで、そのメッセージ番号のメールに削除フラグを立てます。

> DELE 1

+OK Bye bye, letter

(5)接続の終了

QUITコマンドで接続を終了します。DELEコマンドでメールの削除要求を行っていれば、この時点で削除されます。

> QUIT

+OK It has been a pleasure serving you.
Connection closed by foreign host.

(6)接続の終了

> QUIT

221 2.0.0 Bye
Connection closed by foreign host.

メールを受信する操作や原理は簡単ですね。
通常使っているメーラーは、コマンド部分を自動的に発呼して、メール本文をローカルに保存しているだけです。

その他にもいろいろなコマンドがあるので、参考まで

コマンド コマンドの動作
USER [メールボックス名] メールボックス名を入力してPOPユーザーの認証を受ける。
PASS [パスワード] SMTP認証 サーバとクライアントがSASL(RFC 2222)を利用して相互認証できるようになる。
APOP [パスワード] [ダイジェスト] 読み出すメールボックスと、ダイジェストを指定する。
STAT メールボックスにたまっているメール数とサイズを表示する。
LIST [メッセージ番号] メールボックスにたまっているメールのメッセージ番号とサイズを表示する。
RETR [メッセージ番号] 入力したメッセージ番号のメール内容を参照する。
DELE [メッセージ番号] 入力したメッセージ番号のメールに削除フラグを付ける。
RSET すべての削除フラグをクリアする。
QUIT 削除フラグが付いたメールを削除して、接続を終了する。