是否有人知道如何使用“邮件”从一系列电子邮件地址中获取邮件。 Ruby中的gem?我已经看到了获取未读消息的线程:
new_messages = Mail.find(keys: ['NOT','SEEN'])
但是我找不到如何从某个地址获取消息。我试过了:
new_messages = Mail.find(keys: ['FROM','example@hello.com'])
但它不起作用。
我知道第6.4.4 of the IMAP protocol部分表示您可以用来搜索邮件的不同搜索标记,但我似乎无法使其发挥作用。
答案 0 :(得分:1)
不幸的是,
Mail.find( keys: ['FROM', from_address] )
,也不
Mail.find( keys: "FROM #{from_address}" )
的工作。然而,有用的是引用电子邮件地址:
Mail.find( keys: "FROM \"#{from_address}\”" )
幸运的是,它只是缺少的引号,因为引用电子邮件地址时数组变体也可以正常工作:
Mail.find( keys: ['FROM', "\"#{from_address}\”"] )
答案 1 :(得分:0)
尝试使用单个电子邮件地址
Mail.all.select { |mail| mail.from.addresses.include?('example@hello.com') }
多次尝试这个
addresses = ['example@hello.com', 'test@hello.com']
Mail.all.select { |mail| (addresses - mail.from.addresses).empty? }
另外,如果你想找到第一封邮件,试试这个
Mail.all.find { |mail| mail.from.addresses.include?('example@hello.com') }