2017-07-16 13 views
0

誰かがRubyで 'mail'宝石を使ってメールアドレスの配列からメールを受け取る方法を知っていますか?私は次のような未読メッセージを得るためのスレッドを見てきました:ruby​​ mail gem - 特定のメールアドレスから受信トレイを検索する

new_messages = Mail.find(keys: ['NOT','SEEN']) 

しかし、特定のアドレスからメッセージを取得する方法が見つかりません。私は試しました:

new_messages = Mail.find(keys: ['FROM','[email protected]']) 

しかし、それは動作しません。

私が知っているセクション6.4.4 of the IMAP protocolは、メッセージを検索するために使用できるさまざまな検索フラグを示していますが、動作させることができません。

答えて

0

どちらも、あなたは残念ながら、この

Mail.all.find { |mail| mail.from.addresses.include?('[email protected]') } 
+0

おかげでアミット - 希望これはまだすべてのメッセージに最初にロードされ、その後それらをフィルタリングしますか?私は物事を速く保つために指定された電子メールのための実際の受信トレイを検索することを試みています。 –

0

を試すだけの最初のメールを検索したい場合にも、この

addresses = ['[email protected]', '[email protected]'] 
Mail.all.select { |mail| (addresses - mail.from.addresses).empty? } 

を試してみてください単一の電子メールアドレス

Mail.all.select { |mail| mail.from.addresses.include?('[email protected]') } 

と複数のためにこれを試してみてくださいません

Mail.find(keys: ['FROM', from_address]) 

Mail.find(keys: "FROM #{from_address}") 

で働いていました。働いていた、しかし、電子メールアドレス引用されているもの:電子メールアドレスを引用する際に、配列変異体は、同様に機能として幸いにも

Mail.find(keys: "FROM \"#{from_address}\”") 

を、それは、単に不足している引用符た:

Mail.find(keys: ['FROM', "\"#{from_address}\”"])