読者です 読者をやめる 読者になる 読者になる

GnusでGmailのメールを日本語で検索できるgnus-x-gm-raw.elを作りました

Emacs Elisp Gmail Gnus IMAP

これは何?

最近、GnusでGmailを扱おうと試みています。
Gnusではgnus-group-make-nnir-group(デフォルトで"G G")でグループ内のメール検索ができますが、
GmailIMAPフォルダを日本語で検索すると、以下のように表示され検索できませんでした。

Couldn't request group: Search produced empty results.

試しに、Yahoo!IMAPフォルダに対して同じ操作をすると検索できたため、
Gmailだけの現象のようで、調べると以下のページが見つかりました。

[tech] Gmail のメールを OAuth で読む (Perl) | Wed, Jun 19. 2013 - 氾濫原 [HANRANGEN]

X-GM-RAWという、Webインタフェースの検索窓と同じ書式でIMAPのSEARCHコマンドを発行できる機能があり、
それには日本語も使えるということだったので、この機能を使ってGmailのフォルダを検索する拡張を作りました。

特徴

意識せず使える

Gmailのフォルダを対象に、上記のgnus-group-make-nnir-groupを実行すれば、
内部ではX-GM-RAWを使ってIMAPサーバにアクセスするようになります。

インストール/設定

以下にまとめました。

https://github.com/aki2o/gnus-x-gm-raw/blob/master/README.md

その他

あとがき

X-GM-RAWを使わなくても、もしかしたら日本語で検索できる方法はあるかも知れません。
ただ、nnimap.elでは、SEARCHコマンド発行時にCHARSETが指定してなかったので、
指定するようにしてみましたが、それではダメでした。

gnus-group-make-nnir-groupの入力欄に、X-GM-RAWの書式で入力することも可能ですが、
接頭引数付き(C-u)の実行でヘッダが幾つか(subjectとか)選べるので、それで十分かなと思ってます。
他の書式で指定したい場面が出てくるようだったら、
X-GM-RAWの書式をベタで書くのは大変なので、ヘルパー機能でも付けようかと思ってます。

あと、X-GM-RAWでは2重引用符で括るとフレーズ検索となるということなんですが、
2重引用符で括らなくても何故かフレーズ検索になってしまっているようです。
Webインタフェースの検索窓からの入力だと、2重引用符の有無で検索結果が違うのに、
Gnusからだと、どちらも2重引用符有りの結果になってしまいました。
発行しているコマンドが正しいことは確認したので、ちょっと原因がわかりません。

Enjoy!!!