http://www.hawkwings.net/2007/03/01/a-faster-way-to-speed-up-mailapp/
あちこちのブログで紹介されていますが、Mail.appが使用しているSQLiteに対してVACUUMを発行し、データベースを整理してMailを高速化するというTips。これをAutomatorにやらせてみました。
AutomatorにはSQLiteのクエリを実行するアクションがある(要XCodeインストール)ので、ワークフローにすることができます。しかし、こんな事やろうと思う人ならTerminalでコマンド打ったほうが楽でしょうし、繰り返し行う作業ではないのでAutomatorでやる意味ないですよ。突っ込まれる前に念のため。
「指定されたFinder項目を取得」アクションに、/Users/your account/Library/Mail/Envelope Indexファイルをドロップします。「SQLを実行」アクションでvacuum subjectsします。
SQLでメール本文を取得できれば、なんか色々使えそう、と思って、試しに「select * from messages」を実行してテキストに書き出してみたのですが、盛大に文字化けしてダメでした。ああ、こーいうところがジョブズなんだよね…(苦笑)
ちなみにmessagesというテーブル名ですが、SQLite3のプロンプトで、.tablesと打つとデータベースファイルに存在するテーブル名を取得できます。
追記
SQLiteのvacuumはdb全体に適用されて、テーブル名は無視するので最後の行は
sqlite> vacuum;だけでいいのです。どうでもいいことなんですが気になってしまった。
http://d.hatena.ne.jp/ogijun/20070307
The index or table name argument is now ignored
http://www.sqlite.org/lang_vacuum.html
おお、なるほどマニュアルにもちゃんと書いてありますね。
ちなみにこの高速化Tips、メールが1万通位ないとほとんど意味がないようです。