メールサーバー上のすべてのIMAPフォルダを検索する方法を探しています。最近、IMAP ESEARCHコマンドを発見しました。このコマンドは、通常のSEARCHコマンドを拡張してフォルダー全体を検索します。しかし、私はそれを機能させることができないようです。
メールサーバーがをサポートしていることを確認しましたESEARCH
。telnetで接続した後、次のように実行しました。
* OK JAMES IMAP4rev1 Server Server server-address is ready.
A1 LOGIN test test
A1 OK LOGIN completed.
A2 CAPABILITY
* CAPABILITY SASL-IR IDLE LITERAL+ AUTH=PLAIN CONDSTORE ESEARCH CHILDREN UIDPLUS UNSELECT WITHIN ENABLE I18NLEVEL=1 SEARCHRES IMAP4rev1 NAMESPACE QRESYNC
A2 OK CAPABILITY completed.
A3 LIST "" "*"
* LIST (\HasNoChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "Drafts"
* LIST (\HasNoChildren) "." "Sent"
* LIST (\HasNoChildren) "." "Trash"
A3 OK LIST completed.
の存在に注意してくださいESEARCH
。次に、次のことを試しましたがESEARCH
、失敗します。
A4 ESEARCH IN (mailboxes "INBOX") unseen
A4 BAD failed. Unknown command.
通常の検索は正常に機能します。
A5 SELECT INBOX
* FLAGS (\Answered \Deleted \Draft \Flagged \Seen)
...
A5 OK [READ-WRITE] SELECT completed.
A6 SEARCH UNSEEN
* SEARCH 3
A6 OK SEARCH completed.
仕様と正式な構文について私が読むことができることから、これは機能するはずです。ヘルプやポインタをいただければ幸いです。