mumumu の日記

Development, Translation, daily life, thoughts, and so on.

IMAP4rev1 client command

http://tools.ietf.org/html/rfc3501

IMAPサーバとの疎通確認のため、以下のように telnet で接続してみても login でエラーばかり返ってきて困った。

$ telnet XXX.XXX.XXX.XXX 143
Trying XXX.XXX.XXX.XXX...
Connected to XXX.XXX.XXX.XXX (...).
Escape character is '^]'.
* OK Dovecot ready.
login username password
login BAD Error in IMAP command received by server.

username や password は合っているので、なんでだろうといろいろ見ていると、クライアントから送信するコマンドには必ず先頭にアルファベットか数字からなる “tag” という文字列が付くそうな。。完全に忘れていたのでここにメモしておく。

2.2.1.  Client Protocol Sender and Server Protocol Receiver

   The client command begins an operation.  Each client command is
   prefixed with an identifier (typically a short alphanumeric string,
   e.g., A0001, A0002, etc.) called a "tag".  A different tag is
   generated by the client for each command.

   Clients MUST follow the syntax outlined in this specification
   strictly.  It is a syntax error to send a command with missing or
   extraneous spaces or arguments.

サーバからの応答内容は、”*” で始まる。telnet とかで確認するには、各コマンドは適当に a とか b とか付けておけば良いようだ。

$ telnet XXX.XXX.XXX.XXX 143
Trying XXX.XXX.XXX.XXX...
Connected to XXX.XXX.XXX.XXX (...).
Escape character is '^]'.
* OK Dovecot ready.
a login username password
a OK Logged in.
b list "" *
* LIST (\NoInferiors \UnMarked) "/" "Trash"
* LIST (\NoInferiors \UnMarked) "/" "INBOX"
b OK List completed.

何も考えないでコマンドだけうろ覚えだとこういうことになるので気をつけましょう(´ー`;)