修正UTF-7とは #
修正UTF-7は、IMAPプロトコルで非ASCII文字を含むメールボックス名をASCII
文字のみで表現するためのエンコード方式となります。
日本語などの非ASCII文字を含むディレクトリ名は、サーバー上で以下のように表示され、可読性が損なわれます。
例としてサーバー上では下記のように表示される。
.&kAFP4W4IMH8wyDDsMKQ-
PHPでデコードする方法 #
修正UTF-7はPHPのmb_convert_encoding()
関数を利用する事で可読可能な状態にデコードする事が可能です。
デコード対象の文字列の先頭にあるドット(.
)は、IMAPの階層構造を示すものであり、デコードには不要です。
以下はPHPによるデコード処理の例となります。
php -r "echo mb_convert_encoding('&kAFP4W4IMH8wyDDsMKQ-','utf8', 'utf7-imap');"
上記を実行すると以下の様にデコードされた文字が出力されます。
送信済みトレイ
エラーとなる場合 #
PHPのmb_convert_encoding()
関数は、「mbstring」拡張モジュールに含まれています。
このモジュールが有効でない(または未導入)場合、以下のようなエラーが発生することがあります。
Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding()
導入の有無については以下のコマンドにて確認可能となっております。
php -m | grep mbstring
導入済みの場合はPHP設定の確認を実施してください。
未導入となる場合は以下のコマンドにてインストール可能となっております。
dnf install php-mbstring