我在我的rails应用中使用此gem来与Gmail API进行互动:https://github.com/gmailgem/gmail
我可以搜索包含一个标签的电子邮件:
require 'gmail'
gmail = Gmail.connect("email@gmail.com", "testpwd")
gmail.mailbox('Urgent')
但是当我尝试搜索多个标签时,我收到错误消息。如何查找包含两个特定标签的所有电子邮件,例如同时包含标签" Urgent"和"优先级"?
答案 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')