[mew-dist 27009] IMAP関連

NAKAMURA Motonori motonori at example.com
2006年 6月 1日 (木) 15:55:19 JST


京都大学の中村です。久々に mew-dist にメールします ^^;

最近、20万通に達した +inbox をそのまま使い続けるのに耐えられなく
なってきたので、思いきって整理して、IMAP にして Thunderbird や
Becky! も試してみることにしました。Mew も IMAP 経由で使ってみて
いますが(mew 4.2)、何点か気になるところが出てきたので書いてみます。

# wu-imapd は、1フォルダに3万通程度が限界のようですね。
# ソースを見ると、いろいろ最適化できそうなのですが、パフォーマンスを
# 向上させるためのパッチがどこかにあったりはしないのでしょうか?

・IMAP で %inbox を scan(?) すると Seen フラグが立ってしまう。
  たぶん FETCH RFC822 をしているためだと思うのですが、Unseen の
  まま保持したい人っていらっしゃらないのでしょうか。Mew で scan
  してしまうと、Thunderbird から見ると全て Seen になってしまって
  悲しいです。BODY.PEEK[] を FETCH すると Unseen が保持されると
  思うので、とりあえずこの挙動が切替えられるようになっていると
  嬉しく思います(最後に安直なパッチをつけておきます)。

・(setq mew-imap-delete t) の挙動はよくわかりませんでしたが、
  とりあえずデフォルトのままでも scan してメッセージが失われる
  ことはなかったので困りませんでした。今は (setq mew-imap-delete nil)
  にしています。デフォルトは nil の方が安全かなぁ、と思ったりしますが、
  どうでしょう。

・scan の時にメールの本文も取りに行くのは遅いので、
  (setq mew-imap-header-only t) を試してみました。速くて嬉しいです。
  で、T のついたメッセージで I を押したときに、読み込まれたメッセージが
  すぐに表示されるとさらに嬉しいのですが、今だと例えば I して . しないと
  いけないのでしょうか? また n とかで次のメッセージに進んだときに、
  自動的に I してくれるようにできると、さらに嬉しいかもしれません。

・IMAP からローカルへのリファイル
  IMAP のフォルダ間でリファイルすれば良いことなのですが、IMAP の
  サーバ上で Mew を使っているので、どちらからでもアクセスできる
  環境になっています。で、ついつい区別無く操作してしまいますが、
  IMAP からローカルへはリファイルできないんですね。

・まだ試していませんが(gnutls-cliをまだインストールしていない)、
  IMAP/TLS (STARTTLS) には対応しているんでしょうか?

# Thunderbird はフォルダのメールの数が多すぎたら落ちることが
# あるし、なんといっても(セッションが途中出きれて?) EXPUNGE する
# まえに re-scan してくれたりして悲しくなることも多いです。
# でも UI 的には結構使いやすいですね。

---
中村 素典 / 京都大学 学術情報メディアセンター
motonori at example.com

--- mew-imap.el-	Thu Jan 13 17:07:14 2005
+++ mew-imap.el	Thu Jun  1 06:27:13 2006
@@ -552,13 +552,13 @@
 	(mew-imap-command-logout pro pnm)))
      ((or (eq directive 'exec) (eq directive 'jobs) (eq directive 'get))
       (mew-imap-set-truncated pnm nil)
-      (mew-imap-process-send-string pro pnm "UID FETCH %s RFC822" uid))
+      (mew-imap-process-send-string pro pnm "UID FETCH %s BODY.PEEK[]" uid))
      ((and (eq directive 'scan) (not get-body))
       (mew-imap-set-truncated pnm t)
       (mew-imap-process-send-string pro pnm "UID FETCH %s RFC822.HEADER" uid))
      ((or (= lim 0) (< (string-to-int siz) lim))
       (mew-imap-set-truncated pnm nil)
-      (mew-imap-process-send-string pro pnm "UID FETCH %s RFC822" uid))
+      (mew-imap-process-send-string pro pnm "UID FETCH %s BODY.PEEK[]" uid))
      (t
       (mew-imap-set-truncated pnm t)
       (mew-imap-process-send-string



Mew-dist メーリングリストの案内