トップ «前の日記(2003-10-20) 最新 次の日記(2004-03-27)» 編集

ねこの研究室。

Courier-IMAP 公式ページ 日本語訳もどうぞ。
Courier-IMAP | LDAP | debian | distro | kernel | mac | misc | tDiary | tool
 

2004-03-22 Cyrus -> Courier-IMAP

_ [misc] 久しぶりの更新

tDiaryのユーザ名とパスを忘れてしまうほど(覚えてたけど)、更新が空いてしまった…。ちょっと最近やったことを簡単にまとめておく。

_ [tool] 「送信済み」ログを残すWebメール:SquirrelMail

Webメールは大学で提供しているものの他(それすらほとんど使わなかった)、あまり使ったことはなかったのだが、最近のはかなり進歩してきているようだ。特にオープンソースのものの機能がかなり充実してきている。(何を今更的な話だが)SquirrelMailはRed Hat系のLinuxには標準でRPMパッケージとして提供されているようだし、Debianでは言わずもがな、とにかく利用しやすい。そして、ここ何日か請けおった仕事では、「送信済み」のログが残せるWebメール環境が欲しかったのだが、SquirrelMailを使ってみたら、当たり前のようにできる。というか、他のWebメール環境を単に僕が知らなさすぎただけかもしれない。とにかく、よい。 ところで、Courier-IMAPの開発元では、SqWebMailというWebメールソフトを開発しているようなのだが、SquirrelMailとはどういう関係なんだろうか?ちょっと調べてみたところ、関係なさげだった。というか接頭辞が一緒なだけに結構比較される機会が多いようだ。大きな違いとしてはメール取得のために、
  • SqWebMail : Maildirを直に見に行くことができる
  • SquirrelMail : IMAPコネクションを確立して取得
という感じのようだ。まあ、SqWebMailとCourier-IMAP、作ってる人と一緒だもんな。(SamさんはMaildir形式onlyな感じらしいし)別ホストでWebメールを提供する場合やMaildirを使えないMTAと連携する際にはIMAPを通じて、SquirrelMailを使うべきなのだろうなぁ。

_ [tool] Cyrus IMAPのメールボックス形式

それはさておき、世の中のMTAやサーバサイドMUA(POP3サーバとかIMAPサーバの総称として僕はこの単語を使っている。ただ、人によって使い方はまちまち)は色々なメールボックスの形式を用いている。Cyrusの場合はMTAとIMAP/POP3サーバを兼ねているらしく(きちんと使用したことがないのだが)、伝統的なUNIX mbox形式でもなく、Maildir形式でもない特殊なメールボックス形式を採用している(ように見える)。具体的には、

/var/imap-spool/user/(userid)/ ----- ./(受信箱)
                             |`----- sent-mail/(送信済み)
                             |`----- trash/(ゴミ箱)
                              `----- drafts/(下書き)
という4つのディレクトリの中に、4., 5., 6.という風([数字].)に1メール1ファイルの形式でメールが配置されているようだ。(僕が見たCyrusの設定が単にそうなっていただけなのかもしれない)

_ [tool] で、本題はここから。

やりたいことは、Cyrusを用いたWebメール環境から、Postfix+Courier-IMAP+SquirrelMailの環境に移行するということだ。IMAPを使う場合には、多くの人がご存じのように、受信箱だけではなく、送信済み、下書き、ゴミ箱(上のつたない図で書いてある特殊メールボックス)が存在しうる。受信箱のデータだけを移行するのであれば、fetchmailを使えば、さくっとできあがる。(実は、fetchmailも今まで使ったことがなかったけれど、「FetchMailの導入」などを参考にしてみると、うまい具合にメールを一括して取り出すことができて便利)だが、問題は受信箱以外のメールボックスである。Webメール環境だけでなく、Becky!などのメーラからIMAP環境を利用している人ならば、ユーザ側で送信済みメールなどの情報をバックアップできる。Webメールのみ提供されている場合、これは難しい。つまり、要件をまとめると、(どうでもいいが、今、リビングでパパがニュースステーションを見ながら大笑いして咳き込んでいる…。なんか情けないぞ)
  • Cyrus -> Postfix + Courier-IMAP + SquirrelMailに移行する
  • ユーザのメールを(受信箱以外のメールボックスも含めて)移行する
さあどうする?

_ [tool] 解決法・データ移行スクリプトを自作する(めんどくさいことは変わりなかった)

上記の事情から、fetchmailによるコピーだけでは無理。仕方ないので、上でまとめたCyrus IMAPサーバのメールボックスの形式を考慮して、Courier-IMAPから見ることができるようにメールデータをコピーした。やってることは単純で、単にファイル名を変えてコピーするというだけ。もしかしたら、fetchmailを使って、INBOX(受信箱)以外のメールボックスも受信できるかもしれない。が、スクリプトを作る方が簡単だった。使い回しができるスクリプトだと思うので、もう少しだけ修正して公開できたらと思っている。

_ [misc] それにしても。

最近はほとんどOSS系のことに手を付けてないというか、興味アンテナの方向が別を指していますなぁ。おもしろいことがないんだもん。ちょっと前の記事にあるCKパッチの話とか既に頭から抜け落ちていたし(笑)2.6系のカーネルとか一体、今どうなってるんです?