BLOGTIMES
::
Home > mixiの更新内容をメーラーでチェックする
2008/11/28
[ by hsur at 22:21]

mixiの更新内容をメーラーでチェックする

  

mixiも毎日チェックするのが億劫になってきたというか仕事の合間にチェックすると目立つので、なんとかメーラーでチェックする方法がないものかと調べてみると、mixi2gmail.rbというおあつらえ向きのrubyスクリプトを見つけました。スクリプト名はGmailとついていますが、基本的にはメールボックスであればどこにでも配送することができます。

mixi2gmail WWW::Mechanize 0.7.5/Hpricot 対応版 - World Wide Walker

挙動としては、基本的に Linux 前提で、~/.mixi/mixirc に幾つか設定を入れて実行すると、友達の日記を画像を含めて(添付として)指定したメールアドレスに 1日記 1 HTML メールとして送信する。次回実行は新しいものだけを対象にし、また除外リスト、ウォッチリストなどの設定も出来る。

WWW::Mechanize は以前にも書いたが、ログインが必要なウェブサービスからコンテンツを持ってくるなんて言う用途には手軽で便利だ。Hpricot は Htree を改良したっぽいコンセプトだが、そこそこ高速になっているし、non well-formed な HTML 相手に Xpath や css 指定が出来るのは便利。

注意点としては、サイトにも記述があるとおり初回起動時はものすごく重い+メモリを食うので、友人の直近の日記のidを調べて、~/.mixi/lastid.logにぶち込んでおくのは必須だと思います。迂闊にもこれを忘れて起動してしまったため、サーバがswapしまくりで大変でした。

MIMEヘッダがおかしいのでメーラーによっては添付ファイルが認識されないかも

どうもThunderbirdではうまくMIMEパートが認識されなくて、HTMLメールとして認識されないわ、画像が見れないわで困りました。ヘッダを詳しく調べてみたらメールヘッダにContent-Typeがついていて、それがbodyのMIMEパートを認識させないようにしているようだったので、Content-Typeは各MIMEパートにつけるようにしました。あとcronで自動実行することが前提なので、容量が大きくなるhttpアクセスのログが出力されないようにしました。参考までに、diffを貼っておきます。

--- mixi2gmail.rb.org   2008-04-08 11:17:42.000000000 +0900
+++ mixi2gmail.rb       2008-11-26 11:56:30.000000000 +0900
@@ -210,7 +210,8 @@
     end

     def login
-      @agent = WWW::Mechanize.new {|a| a.log = Logger.new(@logfile) }
+#     @agent = WWW::Mechanize.new {|a| a.log = Logger.new(@logfile) }
+      @agent = WWW::Mechanize.new
       @agent.user_agent_alias = 'Windows Mozilla'
       if ENV['HTTP_PROXY'] then
         host, port = ENV['HTTP_PROXY'].split( /:/, 2 )
@@ -317,7 +318,8 @@
     content = ''
     tmp = text
     text = "--#{boundary}\n"
-    text << "Content-Type: text/html;\n\n"
+    text << "Content-Type: text/html; charset=ISO-2022-JP\n"
+    text << "Content-Transfer-Encoding: 7bit\n\n"
     text << tmp
     text << "\n\n"

@@ -348,8 +350,6 @@
 Date: #{datetime.rfc2822}
 MIME-Version: 1.0
 X-ML-Name: mixi
-Content-Type: text/plain; charset=\"iso-2022-jp\"
-Content-Transfer-Encoding: 7bit
 #{header}

 #{NKF.nkf('-j',text)}
このエントリは役に立ちましたか?
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/2817
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン

Web Services by Yahoo! JAPANPowered by NP_SpamBayesJP
★下記に2つの英単語をスペースで区切って入力してください
::
Home > mixiの更新内容をメーラーでチェックする