IMAPのプレフィックスとセパレータについて

疑問点① プレフィックスとセパレータが異なる環境を作るべく、Courier-imapとDovecotのIMAPサーバを構築してみた。同一メーラーからIMAPアクセスすると、ログイン時のクライアントの挙動に以下の違いがあり。
・Dovecotの場合、NAMESPACEコマンドは実行しない。
・Courierの場合、NAMESPACEコマンドを実行する。

→調べても分からん。。。。IMAPは難しい。
違いとしては、

Dovecotは、capaに対して以下レスポンス

CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS

Courierは、capaに対して以下レスポンス
CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS

この違いで、クライアントの動きが変わる。
DovecotはLIST-STATUSとかLIST-EXTENDEDを返している点が妖しいかな?と思ったけど。情報が見つからず。。。。あきらめました。。。。

疑問点② データをimapsyncで移行する時にIMAPのプレフィックスとセパレータについてどう考えるか?

1.以下の条件でimapsyncを実行するとどうなるか?
 ・移行元先ともにNAMESPACEコマンドに対応
 ・移行元のプレフィックス・セパレータは以下
  プレフィックス: INBOX.
  セパレータ: .
 ・移行先のプレフィックス・セパレータは以下
  プレフィックス: ""(空)
  セパレータ: /
 ・移行元先のメールボックス状態は以下の通り
 ・imapsyncは以下オプションで実行
  imapsync --host1 192.168.46.129 --user1 "pike" --password1 "XXXX" \
          --host2 127.0.0.1      --user2 "pike" --password2 "XXXX"

 [結果]
 いい感じに移行できた。移行元先がNAMESPACEに対応している為か。


2.以下の条件でimapsyncを実行するとどうなるか?
 ・移行先のみNAMESPACEコマンドに対応
 ・移行元のプレフィックス・セパレータは以下
  プレフィックス: INBOX.
  セパレータ: .
 ・移行先のプレフィックス・セパレータは以下
  プレフィックス: ""(空)
  セパレータ: /
 ・移行元先のメールボックス状態は以下の通り
 ・imapsyncは以下オプションで実行
  imapsync --host1 192.168.46.129 --user1 "pike" --password1 "XXXX" \
          --host2 127.0.0.1      --user2 "pike" --password2 "XXXX"

 [結果]
 imapsyncがエラー終了。メールボックスの同期処理が行われなかった。
 Host1: No NAMESPACE capability in imap server 192.168.46.129
 Give the separator character with the --sep1 option,
 Most of the time it is character . or /
 so try --sep1 . or --sep1 /

 [結果]
 移行できずimapsyncがエラー終了。NAMESPACEに対応していない場合は、上記オプションの指定が必要。って、helpにも書いてある通り。
 
3.移行先のみ存在するメールがあったり、フォルダがある場合は、

 --delete2や--delete2folderが必要。
 付けないと移行先で削除されず同期にはならない。

 




  • 最終更新:2014-12-13 20:53:36

このWIKIを編集するにはパスワード入力が必要です

認証パスワード