[mew-dist 27871] GMail の IMAP (was: imap summary の sort)

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2007年 10月 26日 (金) 23:59:07 JST


白井です。

From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 27869] Re: imap summary の sort
Message-ID: <20071026.183616.05487500.kazu at example.com>
Date: Fri, 26 Oct 2007 18:36:16 +0900 (JST)

> # たとえば、はてブに一瞬ランクインした以下のページとかも、何がしたいの
> # か伝わってきませんでした。
>http://d.hatena.ne.jp/stanaka/20071025/1193286440

ぼくの GMail のアカウントも IMAP OK になったので、さっそく Mew
から使って見ました。

mew-config-alist は

	    ("imap-server" . "imap.gmail.com")
	    ("imap-user" . "xxxx.xxxxx at example.com")
	    ("imap-auth" . t)
	    ("imap-ssl" . t)
	    ("imap-ssl-port" . "993")

程度で大丈夫です。あとは、imap-trash-folder, imap-queue-folder
の調整が必要でしょう。


....で、以下本題

GMail が返す folder list ですが、GMail の設定が日本語のときは、

<LIST>
* LIST () "/" "INBOX"
* LIST () "/" "Unread"
* LIST (\Noselect) "/" "[Gmail]"
* LIST () "/" "[Gmail]/&MFkweTBmMG4w4TD8MOs-"
* LIST () "/" "[Gmail]/&MLQw33ux-"
* LIST () "/" "[Gmail]/&MLkwvzD8MEIwig-"
* LIST () "/" "[Gmail]/&Tgtm+DBN-"
* LIST () "/" "[Gmail]/&j,dg0TDhMPww6w-"
* LIST () "/" "[Gmail]/&kAFP4W4IMH8w4TD8MOs-"
* LIST () "/" "shirai"
* LIST () "/" "trash"
fhqe6842 OK Success

Mew の folder だと
=> %inbox, %Unread, %[Gmail]/すべてのメール, %[Gmail]/ゴミ箱,
   %[Gmail]/スターあり, %[Gmail]/下書き, %[Gmail]/送信済みメール,
   %[Gmail]/迷惑メール, %queue, %shirai, %trash

GMail の設定が English (US) の時は、

<LIST>
* LIST () "/" "INBOX"
* LIST () "/" "Unread"
* LIST (\Noselect) "/" "[Gmail]"
* LIST () "/" "[Gmail]/All Mail"
* LIST () "/" "[Gmail]/Drafts"
* LIST () "/" "[Gmail]/Sent Mail"
* LIST () "/" "[Gmail]/Spam"
* LIST () "/" "[Gmail]/Starred"
* LIST () "/" "[Gmail]/Trash"
* LIST () "/" "shirai"
* LIST () "/" "trash"

などとなります。

ここで、Mew の仕様で GMail と合わないところ(およびバグ)を見つけ
ました。

(1) mew-input-folder-check(), mew-input-refile-folder-check() で 

	(when (string-match " " folder)
	  (mew-warn "SPC is not allowed!")

 をしているので、"All Mail" や "Sent Mail" を扱えない。これは、
 IMAP folder だったらスペースを許すのが良いのかな?
 
(2) 日本語環境で "%[Gmail]/迷惑メール" などと打っていられないの
 で、補完候補ウインドウで表示されている候補をマウスクリックやリ
 ターンで決定しようとしたとき、デフォルト以外の case をすでに
 minibuffer に入力しておいても、その case が消えてしまう。
 
 ちょっと見にくくなるけど、補完候補ウインドウに表示する候補を
 case 付きにするのが一番解決が楽かな。


というパッチです。

Index: mew-complete.el
===================================================================
RCS file: /cvsmew/mew/mew-complete.el,v
retrieving revision 1.73
diff -u -r1.73 mew-complete.el
--- mew-complete.el	4 Jan 2007 06:49:08 -0000	1.73
+++ mew-complete.el	26 Oct 2007 14:57:02 -0000
@@ -603,6 +603,9 @@
       (mew-complete-window-delete))
      ;; two or more candidates
      ((stringp cmp) ;; (length all) > 1
+      (when (and (stringp case)
+		 (not (string= case mew-case-default)))
+	(setq all (mapcar (lambda (x) (concat case ":" x)) all)))
       (mew-complete2-insert case cmp)
       (mew-complete-window-show all))
      ;; no candidate
Index: mew-minibuf.el
===================================================================
RCS file: /cvsmew/mew/mew-minibuf.el,v
retrieving revision 1.136
diff -u -r1.136 mew-minibuf.el
--- mew-minibuf.el	4 Jan 2007 06:49:11 -0000	1.136
+++ mew-minibuf.el	26 Oct 2007 14:57:02 -0000
@@ -495,7 +495,8 @@
 	(if (and (mew-folder-popp folder) ;; not $inbox
 		 (not (string= mew-pop-inbox-folder folder)))
 	    (throw 'continue nil))
-	(when (string-match " " folder)
+	(when (and (string-match " " folder)
+		   (not (mew-folder-imapp folder)))
 	  (mew-warn "SPC is not allowed!")
 	  (throw 'continue nil))
 	(setq case:folder (mew-canonicalize-case-folder case:folder))
@@ -573,7 +574,8 @@
 	(if (and (= (length folder) 1)
 		 (member folder mew-folder-prefixes)) ;; "prefix" only
 	    (throw 'continue nil))
-	(when (string-match " " folder)
+	(when (and (string-match " " folder)
+		   (not (mew-folder-imapp folder)))
 	  (mew-warn "SPC is not allowed!")
 	  (throw 'continue nil))
 	(setq folder (mew-canonicalize-case-folder folder))

-- 
白井秀行 (mailto:shirai at example.com)



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