Mailの最近のブログ記事

S25R方式

|

POP3プロトコル

|

ポート番号110
行単位での通信を基本とし、行末はCRLF

■状態遷移

Authorization   クライアントとの接続が完了した直後の状態

Transaction    認証完了後

Update       クライアントの通信終了後のメールボックスの更新処理

■認証コマンド

user   ユーザー名を後に入力する。基本的に平文テキストである。

pass   パスワード。上と同様。

apop   MD5の認証を要求するコマンド。

quit   コネクションの切断。

■トランザクションコマンド

STAT   メールドロップに保存されているメッセージの数と総サイズを返す。

LIST   有効なメッセージの番号とサイズを返す。引数に番号を取れる

RETR   指定されたメッセージ番号に対応するメッセージ内容が返される。

DELE   指定されたメッセージ番号の削除をする。実際の削除はUPDATE状態に移ってから。

NOOP   何もならない肯定応答をもらう。

RSET   DELE、LAST コマンドを全てキャンセルさせる。

TOP   RETRと同様の使い方をするが、2番目の引数にメッセージ本文の行数を指定できる。

UIDL   メッセージのidリストを返す。IDはPOPサーバーが付与している。

LAST   クライアントがアクセスしたことがあるメッセージの中で、一番大きい番号を返す。
     最近はないらしい。

■接続例

> telnet

Microsoft Telnet クライアントへようこそ エスケープ文字は 'CTRL+]' です

Microsoft Telnet> set localecho ローカル エコー: オン Microsoft Telnet> set codeset Japanese EUC エミュレーションの種類: VT100/漢字コードセット: Japanese EUC Microsoft Telnet> set CRLF ニューライン モード - リターン キーで CR および LF を送信します Microsoft Telnet> open 192.168.0.4 110 接続中: 192.168.0.4...

+OK dovecot ready. USER hogehoge +OK PASS xxxxxxxxx +OK Logged in. STAT +OK 119 1547303 LIST +OK 119 messages: 1 5629 2 2353 ...

118 8791 119 2487 . TOP 119 +OK ・・・で119のメールの上から100行くらいが表示される . RETR 119 +OK 2487 octets ・・・で、119のメールの全文が表示される . UIDL 119 +OK 119 1143711833.3526 ・・・で、メッセージのIDリストが表示される

QUIT +OK Logging out.

ホストとの接続が切断されました。

SMTPプロトコル

|

ポート番号25
行単位での通信を基本とし、行末はCRLF
改行する場合は行の最後に(-)を入れる。

■SMTPのやり取りの様子
220 dns1.hogehoge.local Microsoft ESMTP MAIL Service, Version: 5.0.2195.5329 ready at Wed, 16 Apr 2003 15:30:41 +0900
helo hogehoge.local               // 受信側に伝えるためのホスト名
250 dns1.hogehoge.local Hello [192.168.0.4]
mail from:<user01@hogehoge.local>        // 差出人
250 2.1.0 user01@hogehoge.local....Sender OK
rcpt to:<hogeo@example.local>         // あて先
250 2.1.5 hogeo@example.local
data                    // メッセージ本文
354 Start mail input; end with <CRLF>.<CRLF>
hogehoge
ugougo
.                      // 「.」で終了
250 2.6.0 <DNS1Fut2aRzhPhN1z1r00000003@dns1.hogehoge.local> Queued mail for delivery
quit                    // コネクション切断
221 hogehoge.local closing connection
■その他のコマンド
・NOOP   肯定応答をもとめるコマンド
・RSET   DATAコマンドを発行するまえなら、これでリセットできる。
・SEND   ユーザーにローカル配信するときに使用する。

■ESMTP

ehlo hogehoge.local           // EHLO で挨拶すると拡張コマンドが表示される
250-dns1.hogehoge.local Hello [192.168.0.4]

250-AUTH GSSAPI NTLM LOGIN 250-AUTH=LOGIN 250-TURN 250-ATRN 250-SIZE 2097152         // メッセージの最大サイズを教えてくれてる 250-ETRN 250-PIPELINING          // レシーバからの応答を待たずに連続してコマンドを発行できる 250-DSN             // DSNが宣言あるとMAILとRCPTで拡張が使える 250-ENHANCEDSTATUSCODES 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-VRFY 250 OK

■リプライコードの例
250 コマンド完了
220 コネクション確立成功
221 コネクション正常切断
354 DATAコマンド受理、メッセージ待ち
※特に55xのエラーはメールシステムに関するエラーなので要注意
500 コマンド構文エラー
550 アドレスエラー。メールボックスが利用できない。
551 ユーザーがローカルではない;<順パス>を試せ
552 記憶領域の割り当てを超えたため、要求された動作を中止した。
553 メールボックス名が不正なものであるため、要求された動作を中止した。
554 トランザクションが失敗した。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMailカテゴリに属しているものが含まれています。

前のカテゴリはDNSです。

次のカテゴリはtcpdumpです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Mail: 月別アーカイブ

Powered by Movable Type 4.1