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.
何も考えないでコマンドだけうろ覚えだとこういうことになるので気をつけましょう(´ー`;)