使用Gmail gem搜索“所有邮件”,包括收件箱和存档电子邮件

时间:2012-01-27 19:54:24

标签: ruby-on-rails ruby-on-rails-3 gmail gmail-imap

我正在使用Gmail gem连接到用户的Gmail帐户并搜索电子邮件:

gmail = Gmail.connect('user', 'pass')
results = gmail.inbox.search(:subject => 'insert_keyword_here')

这仅返回收件箱中的项目(标有收件箱),而不是“所有邮件”中的项目(也称为“存档电子邮件”)。

如何搜索“所有邮件”,而不只是“收件箱”?

2 个答案:

答案 0 :(得分:2)

参加聚会可能有点晚了,但对某些人来说肯定会有用......

如果您需要与语言无关,则应使用其中一个标记选择该文件夹。以下是查找“所有邮件”文件夹的方法:

mailbox_all_mail = imap.list('', '*').find{|mb| mb.attr.include?(:All)}

然后select(或examine)其名称:

imap.examine(mailbox_all_mail.name)

这应该可以解决问题。

答案 1 :(得分:1)

使用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"])

奖金投票将针对非英语语言环境指出智能实用方法的人(因为'All Mail'会有所不同,例如西班牙语'Todos')