最近 Mail.app を使用していて、特にメールボックスを開く際など、内包しているメールの数が多いと時間が掛ることがあった。そんな時、Hawk Wings で【 A faster way to speed up Mail.app 】というエントリーに出会った。
なんでも、~/Library/Mail/ 内の Envelope Index というファイルをスリム化というか再構築することで Mail.app の挙動が早くなるとか。
基本的には Mail.app を終了させ、 Envelope Index をデスクトップに移動し、Mail.app を再起動する。そうするとメッセージの読み込みが始まり再構築するようだ。後でこの方法も試してみたのだが、ちょっと時間が掛る。それにどういう訳だか、ぼくの場合、既に開封したメールが未読メールに分類されてしまう。
そこで今回の【 A faster way to speed up Mail.app 】のエントリーの Terminal を使って同じような効果を得られる方法の方が良いのではと思う。ぼくはまだまだ Terminal の扱いに不慣れなもんで躊躇してしまうのだが、まあ、習うより馴れろでやっちゃいました。やり方は以下の通り。
- Mail.app を終了。
- Terminal を起動。
- cd ~/Library/Mail sqlite3
Envelope\ Index とタイピング。
すると sqlite> というプロンプトが表示されるので、vacuum subjects; とタイピング。
暫くするとまたプロンプトが現われるので、そこで Control-D とタイプして終了。 - そして Mail.app を再起動。
以上なのだが、ぼくの場合どうも上手く行かない。たぶん Terminal へのタイピングの仕方が悪いと思うのだが・・・。因みに Terminal へのコマンド入力って改行で入力できるもんなんだろうか?【 A faster way to speed up Mail.app 】というエントリーでは改行で表記されていたので、ぼくは cd ~/Library/Mail sqlite3 でリターンを打ち、それから Envelope\ Index とタイピングしたんだけど、改行をせずにそのまま続けてタイピングすれば上手く行ったのかもしれない。
でもコメント欄を見ていると、sqlite3 ~/Library/Mail/Envelope\ Index vacuum; という一行で同じことが実行できるとの記述があったのでこちらでやってみた。
今回は上手く行き、そして結果は?確かにメールボックスを開く時の挙動などはめちゃ早くなった。だいたいに於いて Envelope Index というファイルの容量が、やる前に較べてスリムになるようだ。ぼくの場合もEnvelope Index は8.8MBから7.3MBになった。理屈はもちろん判らないが、どうも、日々使っているうちに贅肉が付いてしまったデータベースをスリム化することのようだ。
その後、これをルーティン作業化する為の Applescript を書かれた方もいてそれも紹介されていた。iCal のイベントを設定し月に一度くらいでその Applescript を実行するようにするのだが、そうか iCal ってそういう使い方もできるのかと目から鱗だった。( Scripts to automate the Mail.app Envelope speed trick 参照)

コメント (2)
はじめの方法でやるなら
cd ~/Library/Mail
とターミナルで入力してからリターンキー.さらに
sqlite3 Envelope\ Index
と入力してリターンキー.それから,sqlite>と出たところに
vacuum subjects;
と入力して,リターンキー.もう一度sqlite>と出たらCtrl-Dで終了という感じですね.はじめのコマンドは自分のホームの中のライブラリフォルダの中のMailフォルダに移動するという意味で,その中のEnvelope Indexというファイルに対して処理をしています.sqliteは組み込み型のデータベースシステムですが,興味があれば調べてみてください.
投稿者: ちく | 2007年03月06日 00:34
日時: 2007年03月06日 00:34
>ちくさん
コメントありがとうございます。やはりそうでしたか。ターミナルってGUI にどっぷり漬かった身には取っつき難いですが、もし扱いに馴れてきたら、こりゃ便利なものですね。
投稿者: keizo | 2007年03月06日 12:40
日時: 2007年03月06日 12:40