前田です。

桑島雄一郎 wrote:
>>例えば「INBOX.ABC」を作るのは前回の方法で解決しました。 ~/Maildir/に「.&,yH,Iv8j-」というディレクトリが作ら
>>れています。 それでNet::IMAP#delete(INBOX.&,yH,Iv8j-)とするんですがエラーになります。
> 
> 
> CREATEが全角ABCで実行して成功しているなら、DELETEも全角ABCで実
> 行すれば成功するのではないでしょうか。
> IMAPのRFCを読んだ方がわかりやすいと思いますが。
> 
> IMAPのRFCは"http://www.isi.edu/in-notes/rfc3501.txt"ですが、「5.1
> Mailbox Naming」項に色々と書いてあります。
> クライアントは8-bitメールボックス名の作成を行ってはならない。
> LIST,LSUBで8-bitメールボックス名が返されたらUTF-8として処理すべきである。
> 「5.1.3 Mailbox International Naming Convention」
> 多言語のメールボックス名はUTF-7を使って指名される。
> 
> ということで、もしNet::IMAPのLIST、LSUBの結果が正常にUTF-7としてデコード
> 処理されないのであればバグだと思いますが、そうでないのなら書いたとおりです。
> あとマルチバイトメールボックス名の処理された結果が正しければ、エンコード
> はUTF-8なのでその扱いも考えた方がいいと思います。

現状のNet::IMAPは、メールボックス名のエンコーディング変換は自動では行い
ませんので、ユーザが明示的に変換する必要があります。
使用例は、mobileimap(http://namazu.org/~satoru/mobileimap/)のコードが参
考になるかと思います。

また、Net::IMAPが対応するとしたら、LIST/LSUBの結果をUTF-7にするよりは、
UTF-8にするようなコードにした方が使い勝手がいいだろうと思います。

-- 
前田 修吾