Gmail ライクに​メールを​検索する​ Alfred Workflow を​つくった

Posted on | 1122 words | ~3mins
perl alfred tool

Mac ユーザの​皆さま,​Alfred は​使っておられますでしょうか?​ ご存知の​方も​多いと​思いますが,​Alfred は​ Mac で​使える​コマンドライン型ランチャーです.​ 基本的には​標準で​搭載されている​ Spotlight でも​同じような​ことができますが,​Alfred の​方が​拡張性も​高く​使いやすいと​思います.​ 特に​ Powerpack と​いう​有料パックを​購入すると​使えるようになる​ Workflow と​いう​機能が​めちゃくちゃ​便利です.​ Workflow とは​ Alfred から​スクリプトを​実行する​機能で,​例えば​ Alfred から​ VM を​操作したり,​Evernote を​検索したりする​ことができます.​ Workflow は​簡単に​公開する​ことができるので,​様々な​ Workflow が​公開されています.

(参考: Alfred 2の​ユーザ体験を​ロケットスタートで​始める​ための​13の​偉大な​Workflow​16 Great Workflows to Jumpstart Your Alfred Experience​Alfred 2 Workflow List)

個人的には​ Mac を​使う​理由の​1つと​言っても​よい​ほど​快適です. ​使ってない​人は​ぜひ一度​試してみてください​(Alfred の​紹介記事は​検索すれば​たくさん​ヒットするので​使い方​等は​割愛します).

で,​ヘビーユーザーな​自分は​メールの​検索も​ Alfred で​やりたかったので,​今回 Alfred で​ Mail.app 内の​メールを​検索する​ Workflow を​つくったと​いう​話です.

導入

以下の​リンクからMailSearcher.alfredworkflowを​ダウンロードして,​ダブルクリックすれば​勝手に​インポートされます.

ソースは​以下の​レポジトリに​あります.

当然 Powerpack 導入済の​ Alfred が​必要です.​ あと​この​ Workflow は​ あくまで​ Mail.app 内の​メール検索なので,​Thunderbird など​他の​メールクライアントを​使ってる​場合は​使えないです…

使い方

mls {query}{query}を​件名か本文に​含むメールの​リストを​ Alfred 上に​表示,​Enter を​押すと​その​メールを​開きます.

ちなみに​以下に​示すような,​Gmail の​ Advanced Search Operator の​一部が​使えます.

OperatorDefinitionExamples
from:Used to specify the sender.Example: from:amyMeaning: Messages from Amy
to:Used to specify a recipient.Example: to:davidMeaning: All messages that were sent to David
subject:Search for words in the subject line.Example: subject:dinnerMeaning: Messages that have the word “dinner” in the subject
is:starredis:unreadis:readSearch for messages that are starred, unread, or read.Example: is:read is:starred from:DavidMeaning: Messages from David that have been read and are marked with a star

(From Advanced search - Gmail Help.)

mls from:と​入力すると​アドレス一覧が​出てくるなど,​補完機能も​ついているので​ TAB で​補完できます.

実装について

Perl スクリプトから​ Mail.app の​ sqlite DB を​見てるだけです.​ Mail.app で​開く​部分は​ AppleScript で​やってます.​ 全文​検索をLIKE​演算子で​やってるので​データが​多いと​結果が​返ってくるのが​遅い…​ FTS 3 + MeCab とか​使ったら​いいのでしょうが,​DBへの​変更は​ Mail.app が​やるわけで​どうするのが​賢いのか​思いついてない​感じです.​ ​そのうち何とか​せねば…

まとめ

自分が​使いたかったので​作りましたが,​使ってくれる​方が​いらっしゃれば​幸いです.​ プルリク等お待ちしてます.

皆さんも​ Workflow を​自作して​素敵な​ Alfred ライフを​実現しましょう​ :)