Ruby / Rails:获取所有可用的imap文件夹列表

时间:2013-11-17 14:32:56

标签: ruby-on-rails ruby email imap

我是Ruby / Rails的新手,一直在关注Net :: IMAP。我想要做的是连接到我的IMAP帐户并迭代我的所有IMAP文件夹。如果我使用我的ISP的webmail客户端,我发现我的所有文件夹都存在于名为“INBOX”的单个邮箱下。

imap = Net::IMAP.new(@server_name, @server_port)
imap.login(@username, @password)

imap.select("INBOX")

# obtain a list of mailboxes contained within INBOX
all_folders = imap.list('', 'INBOX/%')
# all_folders is always set to nil

我尝试了对Net :: IMAP#list方法的参数的各种排列。我做错了什么?

TIA

2 个答案:

答案 0 :(得分:2)

这应该可行,您可以尝试使用*而不是%。

% is a wildcard for everything besides hierarchical characters.
* also includes hierarchical characters.

You should get back an array of IMAP::MailboxList

您也可以尝试:

imap.list('*', '*')  to see a list of folders.

您提供的代码应该可以使用,但不同的邮件提供商有不同的实现,因此知道您正在使用哪一个,可能有助于解决这个问题。

答案 1 :(得分:0)

对于Net :: IMAP版本2.0.3,正确的方法是: imap.list('%', '%')

相关问题