im.kayac 使ってメール本文を通知

im.kayac が最近バージョンアップして、待望のiPhoneアプリができたり EMail で通知できるようになったりとかなり使い勝手がよくなっていました。
でも Email での通知が件名しか表示されず本文は通知できなくて残念だったのでその辺をどうにかした。

#!/usr/bin/ruby -w

require 'rubygems'
require 'tmail'
require 'net/http'

im_username = 'username'
im_password = 'password'
 
email = TMail::Mail.parse(STDIN.read)
body = email.body
from = email.from

body.each_line do |message|
  next if message.strip.empty?
   Net::HTTP.start('im.kayac.com', 80) { |http|
    response = http.post("/api/post/#{im_username}", "message=#{message}from:#{from}&password=#{im_password}")
   }
end

このスクリプトを自分のサーバの /etc/aliases もしくは /etc/postfix/aliases に登録してメールがきたらスクリプトに渡すようにします。

# vi /etc/aliases

 push: "| /usr/bin/ruby /home/user/pushkayac.rb"

# newaliases
# vi /etc/postfix/aliases

 push: "| /usr/bin/ruby /home/user/pushkayac.rb"

# postalias /etc/postfix/aliases

これで push@localhost に届いたメールの本文とfromがiPhoneに通知されるようになります。
メールで通知できればいろいろ応用が聞くと思うのでいろいろ通知して快適な通知ライフを送りたいとおもいます!
ちなみに ruby とかほとんど触ったことないのでつぎはぎな感じになってると思うのでなんかもっとこうしたほうが芸術的!とかあったら教えてください!

とりあえず plagger 使って毎朝当日の天気が通知されるようにしたのと10分前にアニメの放送を知らせるようにしました。