【问题标题】:Searching "All Mail" including Inbox and Archived Emails using Gmail gem使用 Gmail gem 搜索“所有邮件”,包括收件箱和存档电子邮件
【发布时间】:2012-02-20 19:01:57
【问题描述】:
我正在使用Gmail gem 连接到用户的 Gmail 帐户并搜索电子邮件:
gmail = Gmail.connect('user', 'pass')
results = gmail.inbox.search(:subject => 'insert_keyword_here')
这仅返回收件箱中的项目(标有收件箱),而不是“所有邮件”(也称为“存档电子邮件”)中的项目。
如何搜索“所有邮件”,而不仅仅是收件箱?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
gmail
gmail-imap
【解决方案1】:
聚会可能有点晚了,但肯定对某人有用...
如果您需要与语言无关,您应该使用其中一个标签来选择文件夹。以下是查找“所有邮件”文件夹的方法:
mailbox_all_mail = imap.list('', '*').find{|mb| mb.attr.include?(:All)}
然后是select(或examine)它的名字:
imap.examine(mailbox_all_mail.name)
这应该可以解决问题。
【解决方案2】:
使用 Gmail gem:
gmail = Gmail.connect('user', 'pass')
results = gmail.mailbox('[Gmail]/All Mail').search(:subject => 'insert_keyword_here')
通用 IMAP,不使用 Gmail gem:
gmail.login('user','pass')
gmail.select('[Gmail]/All Mail')
results = gmail.search(["SUBJECT", "insert_keyword_here"])
奖金投票将授予为非英语语言区域指出明智实用方法的人(因为“所有邮件”会有所不同,例如西班牙语中的“待办事项”)