2007-10-24

ThunderbirdからWanderlustに移行する その後

なんとか、Wanderlustへの移行が完了しました。完了したとは言え、色々とトラブルを内包しています。例えば、自分のメールアドレスのリストを登録しようとして
(setq wl-user-mail-address-list (list (wl-address-header-extract-address wl-from) "メールアドレス その1" "メールアドレス その2" ))
とかしても"wl-address-header-extract-address"なんてねーよ、と怒られたり、
(setq mail-self-blind t)
を書いていたら、smtpエラーでメールが送れなかったりしてる。 でも、一番の不満なところはspam判定にえらい時間がかかること。thunderbirdで使っていたspamassassinをwlでも使おうと思って、設定してみたんだけど、spam判定処理が遅すぎる。例えば、出社してきて一番にメールをチェックするとしよう。だいたい、inboxには30通前後のメールがたまっていて、ほぼ全てがspam。このチェックだけに10分ほどかかる。spam判定処理中はemacsが使えないので、何もすることができない。朝からこのストレスはちょっと遠慮したい。 あとはwlにメール環境を乗り換えてメールを読むスタイルが変るかもしれない。今まではメールをサーバから取ってきたら、すぐにメールの振り分けがあって、spamはspamフォルダにはじかれていた。wlに乗り換えてspam判定に時間がかかるので、一度inboxに全てのメールを溜めて、手動でspam判定処理を起動 -> non-spamのメールに目を通す -> メールの振り分けという流れになった。これで万が一、non-spamをspam判定されてspamフォルダに振り分けられて、そのままという事態がなくなるような気がする。 それにemacsにメール環境を組み込んだことで、メールを書く作業のストレスも減った。emacs指になっているので、さくさくメールが書ける。問題なのはタイピングの速度とtypoの発生率だけ。 というわけで、thunderbirdを捨ててWanderlustに乗り換えるというのはおおむね成功。しばらくはこのままで生活をしてみよう。

2007-10-10

ThunderbirdからWanderlustに移行する その2

なんとか、thunderbirdのメールをmh形式に直せたので、次は変換したmhファイルをwlに読み込ませてみようと思う。とはいえ、~/.foldersに記載されているフォルダにmhファイルを突っ込めばいいので結構簡単。昨日のエントリで書いていたshell scriptではdirList.txtというthunderbirdのフォルダ構造をダンプしたテキストファイルがあるので、こいつをいじればいい。今回の場合は↓みたいな感じで列挙されていた。
././thunderbird/inbox
././thunderbird/inbox/hoge
././thunderbird/inbox/foo
././thunderbird/inbox/bar
これを.foldersの形式に合わせればいいのでこんな感じか。
% sed s/\.\\/\.\\/thunderbird\\//\\+/g dirList.txt > folders-sample.txt
それと、wlのinboxでメールを受信しても、サーバにメールは残したい(まだ、試験段階だから)。なので.foldersのinboxは以下のように書いておく。
|&ユーザ名/認証方式@pop3サーバ名|:+inbox
+inboxの前にある:がミソ。こいつがあればメールを受信してもサーバにメッセージは残ったままになる。あとは、見栄えとかを気にしつつ.foldersを編集すればok。

ついでにwlの設定もしちゃう。必要な設定はこんな感じ。
  • elmo-maildir-folder-path
    Mailへのパス。自分の場合は~/Mailとした
  • wl-default-spec
    なんかしらんが、+を設定
  • wl-default-folder
    多分、いわゆる、受信箱のこと。+inboxとしておいた
  • SMTP関係
    • wl-smtp-posting-user
      smtpアカウント名
    • wl-smtp-posting-server
      smtpサーバ
    • wl-smtp-authenticate-type
      認証方式
    • wl-smtp-posting-port
      smtpサーバのポート番号
    • wl-smtp-connection-type
      ウチの場合はsslを使っている
    • ssl-certificate-verification-policy
      ど忘れした、とりあえず2と叫んでいればいいかな
  • POP関係
    • elmo-pop3-default-user
      pop3のユーザ名
    • elmo-pop3-default-server
      pop3のサーバ
    • elmo-pop3-default-authenticate-type
      pop3の認証形式
    • elmo-pop3-default-port
      pop3サーバのポート番号
    • elmo-pop3-default-stream-type
      sslとか
wanderlustの場合は.emacsではなくて、~/.wlに設定を書かないといけないらしいけど、自分の場合は~/.emacs.d/以下にemacs関係の設定をおいている。理由はバックアップを取る時に何も考えずにできるから。とりあえず、~/.emacs.d/emacs-wl.elというファイルを作って、.emacs.elから読み込ませてみる。なんとか、メールの受信は出来ているぽい。
次はspamフィルタを付けてみる。thunderbirdで使っていたspamフィルターのSpamAssassinがwlでも使えるみたいなので、とりあえず、登録してみる。SpamAssassin自体はmac portsに登録されているので、コマンド一発で入った。
% port install p5-mail-spamassasin +ssl
あとは、wlの設定に以下を追加したら、wlからspamassassinが使えるようになる。
(setq elmo-spam-scheme 'sa)
(require 'wl-spam)
(setq wl-spam-auto-check-folder-regexp-list '("\\+inbox"))
(setq wl-spam-folder "+spam")
spamassassinは学習させないと、メールがspamかどうか判定できないから今までthunderbirdで溜め込んだspamメールと正常なメールで学習させる。

まずは、spamメールの学習から。例によってthunderbirdのJunkからincmでmh形式に直して、以下のコマンドを実行。--progressオプションを付けて作業の進捗具合をみておく(小心者なのでプロンプトが帰ってくるまで何も表示されないのは精神衛生上悪い)。
% sa-learn --progress --spam ./spam
次に非spamメールを学習させる。こっちは既にmh形式のメールファイルを~/Mail以下に持ってきているから、こんな感じでやってみる。
% for i in `find ~/Mail/inbox -type f`; do
sa-learn --progress --ham "$i"
done
今までの受信メールを全部喰わせたので、アホみたいに時間がかかった。

というわけで、今日はこのぐらいで勘弁しておいてやる。あとはカスタマイズくらいかなぁ。

2007-10-09

ThunderbirdからWalnderlustに移行する その1

なんだか、thunderbirdの開発が続くか怪しくなってきた。というわけで、thunderbirdからメール環境を移行することを最近考えています。自分のメール環境として必要な要件は以下のとおり
  • オープンソースであること
  • プラットホームを選ばない
とりあえず思いつくのは上記のとおり。なので、Mac OS XについているMail.appや(少なくとも日本では)デファクトスタンダードになっているOEは選択肢にあがらないわけです。あと、プラットホームを選ばないという点ではgmailも候補にあがりそうですが、要件その1にあっていないので却下です。gmailはあくまでもメール環境のバックアップです。 というわけで移行先のメール環境としては以下がリストアップされてきました。
  • sylpheed
  • mew
  • wanderlust
sylpheedは遥か昔に使っていたメーラなので何となく親しみはあります。その他のmewとwanderlustは使おうとして挫折したことはあるけど、使ったことはないです。sylpheedはまだ開発が続いているようですが、Mac OS Xで動かすのがめんどくさそうなので却下。で、mewかwanderlustが残ったわけですが、なんとなくwanderlustに引越してみます。 というわけで、今までthunderbirdに溜め込んできたメールをwanderlustが読める形に変換する必要が出てきました。thunderbirdはmbox形式、wanderlustはmh形式でメールを保存するのでmbox -> mhな変換が必要になります。てきとーにググってみてもwanderlustからthunderbirdへ移行した人は結構いるっぽいけど、逆はなかなかいなかったです。 しかたないので、mewに付属しているincmというプログラムに1回喰わせて、mh形式に直してみます。incmを使う時点でmewに移行しろよ、という気がしなくもないですが、初志貫徹ということでもう少しwanderlustにこだわってみます。 以下は大まかな手順です。
  1. thunderbirdで溜めたメールを適当なディレクトリにコピー Mac OS Xでは~/Library/Thunderbird/Profiles/文字列/Mail/Local Folders にメールが溜め込まれているので、このディレクトリをコピーします。
  2. mboxファイル全てに対して以下のコマンドを実行します incm -b -d mboxファイル -i 変換先のディレクトリ 自分の場合はフォルダが80個くらいあったので適当にスクリプトを書きました。こんな感じ。
    #!/bin/sh mboxDir="$1" mhDir="$2" if [ -d "$mhDir" ]; then mv "$mhDir" "$mhDir"-back fi logFile="$PWD/log.txt" if [ -f "$logFile" ]; then rm -f "$logFile" fi touch "$logFile" mailList="./mailLIst.txt" if [ -f "$mailList" ]; then rm -f "$mailList" fi find ./"$mboxDir" -type f > "$mailList" dirList="./dirList.txt" if [ -f "$dirList" ]; then rm -f "$dirList" fi sed s/.sbd//g "$mailList" > "$dirList" for i in `cat "$mailList"`; do echo "$i" >> "$logFile" exportDir="$mhDir"/"`echo $i | sed s/.sbd//g`" if [ ! -d "$exportDir" ]; then echo "create directory: $exportDir" >> "$logFile" mkdir -p "$exportDir" fi ./incm -b -d "$i" -i "$exportDir" | tail -n 10 >> "$logFile" ls "$exportDir" | wc -l >> "$logFile" echo >> "$logFile" done
一応、logファイルで出力された変換済みのファイルの数と実際にthunderbirdで保存しているメールの数を比較したほうがいいかもしれません。 とりあえず、今日はこれくらいで勘弁しておきます。

2007-10-01

iPod Touchを買うべきか

なんだか、世間の祭りに乗り遅れた感が無きにしも有らずな、タイトルですが、昨日の夜から激しい物欲と戦っています。 iPod Touchが発表された当初は様子見のつもりでした。なぜかというと、自分は個人でWindowsもMacも持たない、純粋なLinuxユーザだから。iPod Touchがどんなに優れたガジェットだとしても、ついでにMacまで買うほどお金持ちじゃありません。では、なぜ今になって物欲が出てきたかというと、iPod nanoのデータを管理しているgnupodの最新版(0.99.4)のCHANGESにこんな文面があったからです。
- Added support for 2007-iPods (iPod Classic, iPod Nano-2 and iPod Touch (?) )
「?」の部分が気になるところですが、これでiPod Touchを買うための防壁の1つはもろくも崩れ去りました。
Apple attempted to lockout non-iTunes software by implementing an obscure protection using a sha1-hash. This sucked very bad.. for about 36 hours. This GNUpod release is able to overcome the silly protection. Thanks a lot to 'wtbw' for discovering some random numbers and implementing hash58.cpp Feel free to express your feelings about this issue at http://www.apple.com/feedback/ipod.html
ついでにこんなことも書いてあるけど、バージョンがあがればどうにかなるでしょう。後は家の財布を握っている相方さん(実は先月末に結婚しました)を説き伏せて、クリックするだけですな。