平衡点


2015/05/10

_ offlineimap から mbsync に移行 + Dovecot での全文検索

(ひっそりと URL 修正)

最近 offlineimap での同期が遅いのが体感でわかる様になったので、mbsync へ移行。 また、dovecot で Apache Solr を使った全文検索を有効にしてみた。

mbsync でのメール同期

もはやそれなりに枯れたソフトウェアなのか、Web 上には日本語の情報が殆んど無い。 とはいえ man はかなり充実しているのであまり困らないだろう。

  • IMAP サーバの情報を IMAPAccount に書く
  • ローカルの Maildir の情報を MaildirStore に書く
  • 同期の設定を Channel に書く

という塩梅. 例えば、imap.example.com のメールをローカルの ~/Maildir に同期したい場合には ~/.mbsyncrc に

IMAPAccount imapserver   # 後で IMAPStore で使う名前
Host imap.example.com
User Username
Pass Password
Port 993
UseIMAPS yes
RequireSSL yes
UseTLSv1.2 yes
CertificateFile /etc/ssl/certs/ca-certificates.crt

IMAPStore imapserver-remote  # channel に使用する名前
Account imapserver           # IMAPAccount に使った名前

MaildirStore local           # channel に使用する名前
Path ~/Maildir/
Inbox ~/Maildir/INBOX

Channel imap
Master :imapserver-remote:
Slave :local:
Patterns *
Create Both
Expunge Both
Sync all
SyncState *

で良い。IMAP サーバ側のメールボックスに "/" が使われている場合には

MaildirStore local           # channel に使用する名前
Path ~/Maildir/
Inbox ~/Maildir/INBOX
Flatten .

としておくと、例えば

[imap サーバ側]     [ローカル Maildir]
work/gfd     <->  work.gfd

の様に手元で変換される。

また、手元の Maildir に適当な suffix を付けておきたい場合には

Channel imap
Master :imapserver-remote:
Slave :local:INBOX.imap.

とでもしておくと

[imap サーバ側]     [ローカル Maildir]
work/gfd     <->  INBOX.imap.work.gfd

となる。

同期するメールボックスの指定は Pattern に記述する。簡単な正規表現が使えるので、例えば

Pattern * !*Gmail* !*docomo* !*local*

としておくと、名前に Gmail, docomo, local を含まない Maildir が同期される。

試しに同期してみたが、offlineimap と比べて明かに速い。 それこそ初回同期の際には 25万通以上(6.5GB) のメールが、 offlineimap だと一日ぐらいかかったのが、数時間で終わった。 また、その後の同期も(回線速度によるだろうけれど) 1分弱。 私は2年以上前のメールを年度毎の Maildir に放り込んでいるので、一つの Maildir に数万通のメールがあったりするのだが、これも一瞬で同期が終わる(手元もサーバ上も変更が無いから、これが望ましい結果だと思うが)。

offlineimap は python で色々拡張ができるという利点があるかもしれないが、私の様に特に拡張を求めていない/python のコードを殆んど書かない人にとっては mbsync の方がありがたい。 また、offlineimap は docomo の imap サーバからメールが取得できない(いらんやろ、という指摘はわかる)が、mbync だとちゃんと取得できる。 gnutls-cli で imap 接続し fetch なんかを叩くとちゃんとメールが取得できるので、docomo の imap サーバは悪くないとは思う(多分).

Dovecot + Apache Solr で FullTextSearch

...そこまで頑張らなくても良いって指摘はさておき。

Apache Solr で dovecot-imapd の fts (full text search) を強化するために、ちょっとじたばた。

  • Solr 自体は solr-jetty で起動し、localhost:8089 で待受
  • Solr の scheme.xml は dovecot-solr で配布されている solr-scheme.xml に solr 本体の scheme.xml から text_cjk 部分を抜き出して追加

で動作させてみた。検索自体は早くなった気がするが、はてさて。

まとめ

mbsync に関しては特に言うことがない。もう offlineimap には戻れないなぁ...。 一方で dovecot-solr に関してはまだ未知数。良い感じなら、職場の dovecot にも入れてみようと思うが、はてさて。

_ tmux-2.0

unstable に tmux 2.0 が来たので、以前やった EAW 対処用の patch をあてて rebuild したり。 毎度 ad hoc にやっている訳だが、どうするのが良いのだろうかね。

今んところの鬼門は dialog 関連かなぁ。罫線関連のフォントはどんな文脈でも "width =1" であって欲しいのだが。


連絡先など
最近の日記
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
  • 2024/05/21
    • 1. GnuPG が 2.2.43 に更新されて, Emacs の EasyPG でファイルが保存できなくなりました
    • 2. 久々に esup を走らせたら
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|
Back to Top ▲