Tuesday, September 8, 2009

IMAProwl 0.9

http://github.com/takuo/IMAProwl/downloads

daemon modeの実装と設定ファイルの位置を変更しました。

設定ファイルは
  1. -c オプションで指定
  2. ~/.imaprowl.conf
  3. `pwd`/imaprowl.conf
  4. `pwd`/config.yml (deprecated)
  5. basename(imaprowl.rb)/imaprowl.conf
の順番で探して読み込みます。

daemon modeはWindowsでは機能しません。

コマンドラインオプション
$ ./imaprowl.rb --help
Usage: imaprowl [options]
-c, --config FILENAME Specify the config file.
-q, --daemon Enable daemon mode.
-d, --debug Enable debug output.

これでdebつくればDebianにuploadできるかもしれない。な。

8 comments:

ばつまる said...

はじめまして
いつも参考にさせていただいてます。
gmailのアカウントにドットが入っている
とうまく動かないようです。
(ドットなしのアカウントでは正常動作です)

takuo said...

報告ありがとうございます。
当方でもドット付きアカウントを持っているのでテストしてみましたが特に問題ありません。
どういったエラーがでるかお知らせいただけますでしょうか。

ばつまる said...

当方の設定の問題かもしれませんね。。
エラーは下記です。
e:/ruby/lib/ruby/1.9.1/net/imap.rb:3085:in `parse_error': unexpected token L
(expected QUOTED or LITERAL) (Net::IMAP::ResponseParseError)
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2937:in `match'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2885:in `case_insensitive_st
'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2220:in `media_type'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2153:in `body_type_basic'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2148:in `body_type_1part'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2132:in `body'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2107:in `body_data'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:2019:in `msg_att'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:1989:in `numeric_response'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:1931:in `response_untagged'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:1911:in `response'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:1837:in `parse'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:1053:in `get_response'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:965:in `receive_responses'
from e:/ruby/lib/ruby/1.9.1/net/imap.rb:954:in `block in initialize'

動作環境
WindowsXP Pro SP3
ruby 1.9.1

takuo said...

ありがとうございます。
これはIMAProwlの問題というより RubyのNet::IMAPの問題な気がしますね。
おそらく対象のメールを正しく検知できてないのだと思います。

差し支えなければ、どういったメールが新着できているか調べていただけないでしょうか。
なにか特殊なメールでしたら原因を特定できるのですが…。

ばつまる said...

たびたび恐れ入ります。

Debug: trueで実行してみました
メールの内容
件名:test
本文:test

・ドットなしアカウント
動作OK
imaprowl.logの内容
I, [2009-09-10T16:04:04#5224] INFO -- GMail: Starting.
D, [2009-09-10T16:04:06#5224] DEBUG -- GMail: Checking UNSEEN mail.
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Not Prowled: UID=1
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Not Prowled: UID=2
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Not Prowled: UID=3
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Not Prowled: UID=4
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Not Prowled: UID=5
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Not Prowled: UID=6
D, [2009-09-10T16:04:07#5224] DEBUG -- GMail: Entering IDLE.
D, [2009-09-10T16:05:07#5224] DEBUG -- GMail: Check process status...
I, [2009-09-10T16:05:07#5224] INFO -- GMail: Received EXISTS.
D, [2009-09-10T16:05:07#5224] DEBUG -- GMail: Checking UNSEEN mail.
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: SKIP Already notified: UID=1
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: SKIP Already notified: UID=2
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: SKIP Already notified: UID=3
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: SKIP Already notified: UID=4
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: SKIP Already notified: UID=5
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: SKIP Already notified: UID=6
I, [2009-09-10T16:05:08#5224] INFO -- GMail: Prowling...
D, [2009-09-10T16:05:08#5224] DEBUG -- GMail: Prowling: test from: xxxxx test

・ドットありアカウント
動作NG
imaprowl.logの内容
I, [2009-09-10T16:09:48#4636] INFO -- GMail: Starting.
D, [2009-09-10T16:09:50#4636] DEBUG -- GMail: Checking UNSEEN mail.
しばらくすると(7分後)コマンドプロンプトに
RubyのNet::IMAPのエラー

takuo said...

一度GMailですべて既読にしてから、テストメールを投げても同じでしょうか?

ばつまる said...

すべて既読にして実行した結果、正常に動作しました。
すみません、お騒がせしました。

takuo said...

根本的な解決ではありませんが、受信トレイに「妙なメール」があったためだと思います。

なにが「妙」なのかは、実際にそのメールを見てみないとわからないので、「根本的解決」には至らないのですが。