courier-imapでIMAPを通信をする際に、メーラ側から送信済みフォルダや、ごみ箱フォルダを作成・指定できますが、その際、フォルダ名に日本語を使うと、サーバ側のMaildir以下に作成されるフォルダ名は、文字化けしたような文字列になっている。これはフォルダ名が「UTF7-IMAP」にエンコードされているのだ。
「送信済み」というフォルダは、「&kAFP4W4IMH8-」みたいになっているでしょう。
それでこの文字化けしたような文字列をマルチバイトに戻したい時は、PHPでは以下のようにする。
$folder_name = mb_convert_encoding( $folder_name, 'UTF-8', 'UTF7-IMAP' );
ここではUTF-8に変換している。
WEBメールなどを作成される方はこのエンコード変換が必要でしょう。参考になれば幸いです。
最近のコメント