Growl4Becky
言わずと知れた軽量&高機能メーラーBecky!
10年以上使っているとなかなか他のソフトに乗り換えるのは難しく,Becky!だけのためにVMWare Fusionを買ってWindowsを走らせてます
(まぁ組込み系の開発ツールやVMWare Infrastructureの管理ツールとかWindowsがないとどうにもならないことも多いので,助かってるけど・・・)
VMWare Fusionではご存じユニティモード(ParallelsでいうCoherence)が使えるので,WindowsのアプリをまるでMacのアプリのように扱うことができます
バージョン2からはURLの共有という超便利な機能が追加されて,メール内のURLをクリックするとMac側のSafariとかFirefoxで開くことができるようになり,もっとも不満だった点が解消されました
となると残りの大きな不満点は,「新着メールの通知」機能!!
普通のWindows環境ならタスクトレイのアイコンで着信に気づくことができるんですが,ユニティモードでタスクバーを隠しているとメールの着信が分からない・・・
ちょうど先日Beckrbを入れてみたので,Rubyスクリプトで適当にでっち上げてみました
require 'ruby-growl'
require 'rbuconv'
class Growl4Becky
def initialize(ipaddr, pass)
@g = Growl.new(ipaddr, 'Becky!', ['New Mail Landing'],
nil, pass)
end
def on_retrieve(message, mail)
subject = mail.headers.slice(/^Subject: (.*)/, 1)
from = mail.headers.slice(/^From: (.*)/, 1)
@g.notify('New Mail Landing', Uconv.sjistou8(from.chomp),
Uconv.sjistou8(subject.chomp))
end
end
# Edit ip address and password
Becky.add_callback Growl4Becky.new('192.168.46.1', 'password')
Becky!がメールを受信すると,Growlでお知らせしてくれます
使い方ですが,Beckrbが必要です
上記のRubyのスクリプトを作成して, scripts\startup フォルダにぶち込んでください
(コピペがめんどいって人はコレを保存してください)
Rubyのライブラリとしてruby-growlとrbuconvを使っています
Growlへの通知はUTF-8で行う必要があるのですが,Ruby 1.8.1でUnicodeに変換するのはちょっと面倒です
システムにはできるだけ手を入れたくなかったので,ピュアRuby版Uconvのrbuconvを使いました
なので,これらのライブラリをDLして,Beckrbの lib\ruby\1.8 フォルダの中にぶち込んでください
あと,ネットワーク通知を使うので「システム環境設定」の「Growl」で「リモートアプリケーション登録を許可」しておく必要があります
パスワードも設定しておいた方がよいでしょう
あとは,スクリプトの最終行のIPアドレスと,パスワードを適宜変更するだけです
Becky!を再起動するとGrowlに登録されるので,お好みに応じて「システム環境設定」の「Growl」でBecky!からの通知に対して,表示スタイルやスティッキーなどを変更できます
VMware FusionとかParallelsを使ってて不便やなぁ・・・と思ってる方はぜひお試しください
#IMAPでの受信はうまく通知されません(Becky! APIの仕様と思われます)

