Mailの最近のブログ記事
ポート番号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 クライアントがアクセスしたことがあるメッセージの中で、一番大きい番号を返す。
最近はないらしい。
■接続例
> telnetMicrosoft 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.
ホストとの接続が切断されました。
ポート番号25
行単位での通信を基本とし、行末はCRLF
改行する場合は行の最後に(-)を入れる。
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 トランザクションが失敗した。
