搜索多个标签Gmail API - Rails

时间:2015-12-18 18:01:53

标签: ruby-on-rails ruby gmail-api

我在我的rails应用中使用此gem来与Gmail API进行互动:https://github.com/gmailgem/gmail

我可以搜索包含一个标签的电子邮件:

require 'gmail'
gmail = Gmail.connect("email@gmail.com", "testpwd")
gmail.mailbox('Urgent')

但是当我尝试搜索多个标签时,我收到错误消息。如何查找包含两个特定标签的所有电子邮件,例如同时包含标签" Urgent"和"优先级"?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用交叉点...

urgent_priority_emails = gmail.mailbox('Urgent').emails & gmail.mailbox('Priority').emails

但是,我记得这可能不起作用,因为电子邮件被视为不同的对象,即使它们是相同的消息。

可能有效的替代方案......

   urgent_email_message_ids = gmail.mailbox('Urgent').emails.map{|email|email.message_id}
   urgent_priority_emails = gmail.mailbox('Priority').emails.select{|email| urgent_email_message_ids.include?(email.message_id)}

答案 1 :(得分:0)

gmail gem允许您使用Google搜索过滤器,如下所示:

gmail.mailbox('Urgent').emails(gm: 'label:'Priority')