2012-01-27 22 views
0

を使用して受信トレイやアーカイブされた電子メールを含む「すべてのメール」を検索する私は、ユーザーのGmailアカウントに接続して電子メールを検索するGmail gemを使用しています:は、Gmailの宝石

gmail = Gmail.connect('user', 'pass') 
results = gmail.inbox.search(:subject => 'insert_keyword_here') 

これは、(受信トレイで標識した)受信トレイ内のアイテムのみを返します。 「すべてのメール」(「アーカイブされたメール」とも呼ばれます)のものではありません。

受信トレイだけでなく、「すべてのメール」を検索するにはどうすればよいですか?

gmail = Gmail.connect('user', 'pass') 
results = gmail.mailbox('[Gmail]/All Mail').search(:subject => 'insert_keyword_here') 

ジェネリックIMAP、Gmailの宝石を使用しない:Gmailの宝石で

答えて

2

多分パーティーに遅れているかもしれませんが、確かに誰かのために役立つかもしれません...

言語に依存しないようにする必要がある場合は、いずれかのタグを使用してフォルダを選択する必要があります。

mailbox_all_mail = imap.list('', '*').find{|mb| mb.attr.include?(:All)} 

そしてselect(またはexamine)その名:トリックを行う必要があります

imap.examine(mailbox_all_mail.name) 

ここで、 "すべてのメール" フォルダを検索する方法です。

+0

ありがとう、Mladen、まだ非常に役立っている! –

1

gmail.login('user','pass') 
gmail.select('[Gmail]/All Mail') 
results = gmail.search(["SUBJECT", "insert_keyword_here"]) 

ボーナス投票(英語以外の言語ロケールのためのスマートな実用的なアプローチを指摘誰に移動します