fetchmail + maildrop + IMAP でメールをサーバ振り分けする

うちには PC がたくさんあり、メールをあっちこっちから POPで受信すると大変なことになるため、一回サーバでうけてそのメールボックスを IMAP で LAN 内に公開する形にしています。 こうしておくと、メールクライアントも自由に選べますし、PC を再インストールするときなんかもバックアップとらなくて済むので便利です。

ところで、我らが Mozilla の Thundirbird さんですが IMAP でつなぐとどーにもこーにもパフォーマンスがでない。 特にぼくのメールボックスは 2002 年くらいからのメールがそのままのこっているためメール数が多く、正直 Thundirbird ではつかえないくらい遅くなってしまいます。 (3.0 で速くなるかな~)

というわけで、メインで使っている Linux さんのほうは別のメールクライアントってことで、本格的に Sylpheed を使い始めました。

Sylpheed – lightweight and user-friendly e-mail client

Sylpheedはシンプル、軽量かつ高機能で使いやすい電子メールクライアント(メールソフト、メーラ、MUA)です。

SylpheedはLinux、BSD、Mac OS X等主にUnix系のシステム、そしてWindowsなど多数の環境でで動作します(Windows版についての詳細はWikiを参照してください)。

IMAP でも優れた性能を発揮してくれて、特にフォルダ間のメールの移動などはおそらく Thundirbird の体感倍くらいの速度がでるのではないかと思います。

network02

和製なので、文字化け等の心配もなく、作者さんも使い込んでつくっている印象があり、ユーザインターフェースも分かりやすく実用的です。

さて、このようにメールクライアントがあちこちにある場合 IMAP をひとつおくと便利で、ずっと使っていたのですが長年ひとつ問題をかかえていたのでありました。 それはメールのフォルダ振り分けなのですが、これは実は各クライアントでやらせていました。

振り分けはいっかい設定するだけでいいといえばいいのですが、メーリングリストとか増やしてしまうと全台追加しなければいけなく、そんなことぼくがまめにやるわけもなく、あるクライアントでうけると非常に面倒なことになるということが起きつつありました。

また、iPod touch がバージョンアップで IMAP みれるようになりましたが、振り分けができない(たぶん)ので、ここいらで思い切ってサーバサイドで振り分けをしてみることにしてみました。  touch でメールみるの結構便利です。 ちょっと工夫すればオフ読みできるし。 🙂

今のネットワーク構成はこんなかんじです。 描いているうちにおもしろくなって他のこともかいてしまいまった。 そうそう、RD とかもつながってるんだ。書き忘れた。(笑)

network01

真ん中のサーバとなっている CentOS くん(Linux) が fetchmail というソフトでいろんなところのメールサーバに一定周期でつなぎにいって、POP でとってきています。 それをいままでは postfix にわたしてメールボックスに格納していたのですが、これをやめ、メール振り分けするために maildrop というソフトに渡すことにしました。

.fetchmailrc の内容はこんなかんじです。

[hiromasa@repository ~]$ cat .fetchmailrc 
set logfile "/home/hiromasa/log/fetchmail.log"
set postmaster hiromasa
set no bouncemail
 
defaults
     protocol pop3
     flush
     no mimedecode
     #smtphost localhost
     mda "/usr/bin/maildrop"
     #keep
 
poll pop.mail.yahoo.co.jp
     protocol pop3
     user maple4estry
     password *********

mda に /usr/bin/maildrop を指定しているところがみえます。

でもって、maildrop の設定ファイル、 .mailfilterです。

[hiromasa@repository ~]$ cat .mailfilter 
MAILDIR="$HOME/Maildir"
DEFAULT="$HOME/Maildir/"
 
logfile "$HOME/log/maildrop.log"
 
if (/^Subject: .*Cron/)
{
        to "$MAILDIR/.Cron/"
}
 
if (/^Subject: \[wp-testers/)
{
        to "$MAILDIR/.wp-testers/"
}
 
if (/^Subject: \[PHP/)
{
        to "$MAILDIR/.PHP-users/"
}

こんなかんじに、メールヘッダを判定させて各メールボックスのディレクトリに振り分けていけばいいようです。

メールの振り分けって目で見えていないとどうも怖くって、いままで二の足を踏んでいましたが、設定を「条件にあたらなければデフォルト」とする方式すればいいので間違ってもメールが闇にきえることはなさそうです。

あと、 maildrop が失敗したときは fetchmail が POP から消さずにうまいこと keep してくれました。 最初のうちはログをみながら運用するといいかもしれません。

てなわけで、うちにいっぱいPCがある方はやってみるといいかもしれません。 サーバおくのはお手軽感覚はありませんが、、玄箱とか NAS を debian 化してこれらのソフトをいれると、スイッチぽんでいけるので便利かもしれません。 🙂

fetchmail + maildrop + IMAP でメールをサーバ振り分けする」への3件のフィードバック

  1. 難しそうだけど、このシステム作っちゃうと後々楽ですよねぇ。でもこのために一台サーバーを起動しておくというのがどうもなぁと思っていたのですが「玄箱」って手があるんですねぇ。玄箱PRO買ってシリアルコンソールキットを付けてハックしちゃうわけね。面白そうですねぇ

  2. NAS の Linux 化はできるといろいろ便利そうですね〜。
    USB ついているのも多いので、プリンタサーバにもなりますし!

    とりあえず、debian 化できて apt-get 使えればあとはなんとか。
    面白そうなのでぼくも一回やってみたいと思っています。 🙂

  3. ピンバック: メール構築プラン | Admin Memo

コメントを残す