OutlookからIMAPのフォルダ移動をさせると rename命令が失敗してしまうケースがある

IMAP4使用時にOutlookからフォルダ下にあるサブフォルダを別フォルダ下に移動をさせるとうまくいかないケースがあり、IMAP4詳細ログ(receiveimap4)を調べたところ、RENAME命令が実行されたとき、"NO RENAME fails"が返されている記録ががあり、どういう理由と原因が考えられるかという問い合わせがありました。どのようなときにこうした結果になるかを実際に検証した内容を説明します。

(事例)
Outlookの画面から受信トレイ(INBOX)下にあるサブフォルダ「事務関係」から、ルートに作った「保存メール」フォルダ下に「事務関係」フォルダを移動させるケース。
+受信トレイ(INBOX)
  └事務関係
保存メール
(※)実際のメールサーバは、RFCに基づき「事務関係」フォルダ名を IMAP4用 "UTF-7 符号化の修正版" エンコーディング「&TotS2ZWiT8I-」で処理し、同じく「保存メール」フォルダ名を "UTF-7 符号化の修正版" エンコーディング「&T91bWDDhMPww6w-」で処理する。

ここでRENAME命令で"NO RENAME fails"となる事象を確認するため、親フォルダがある/ない状態や対象フォルダが既にある状態などの複数の異なるケースを作ってみて、telnetコマンドでRENAME命令による操作をしてみて、どのような場合に成功するかあるいは失敗するかを確認してみました。

telnetコマンドでメールボックスに接続し、RENAME命令である
 RENAME "INBOX/&TotS2ZWiT8I-" "&T91bWDDhMPww6w-/&TotS2ZWiT8I-"
のコマンドを実行し得られる動作結果です。

失敗する("NO RENAME fails"となる)のはメールボックスのフォルダ構造と状態が次のケースになります。これらはいずれも仕様通りの結果です。

  1. 存在しないフォルダ下でフォルダをリネームさせようとしたケース
    具体例では親フォルダの"&T91bWDDhMPww6w-"(保存メール)がないとき
  2. リネームすべきフォルダ名が既に存在したケース
    具体例では移動先の"&T91bWDDhMPww6w-/&TotS2ZWiT8I-"(保存メール/事務関係)が既に存在するとき
  3. 元のフォルダが既になくなっているケース
    具体例では"INBOX/&TotS2ZWiT8I-"(INBOX/事務関係)がないとき
一方、成功する("OK RENAME successful"となる)のはメールボックスのフォルダ構造と状態が以下のときになります。

+INBOX
  └&TotS2ZWiT8I- (事務関係
&T91bWDDhMPww6w- (保存メール
このメールボックスのフォルダ構造と状態のときは、仕様上からも動作結果からも正常な結果が得られます。

確認すべき点としては、サーバ上にこのフォルダが既に存在しているケースのように、メールサーバマシンから該当するユーザーのメールボックスフォルダを開いてみて、メールボックスのフォルダ状態が上記3つのケースに当てはまっていないか確認してみるとよいでしょう。
さらに、Outlook側の設定で関連するフォルダが購読取り消し設定になっていないかをチェックしてみたり、強制的に再同期させてみて、場合によってはOutlook開き直しして、それでもようすが変わらないかなども、確認してみることをお薦めします。