java如何使用JavaMail获取邮件帐户中可用文件夹的列表
我正在使用JavaMail API连接到我的个人帐户。我的Gmail帐户中有我创建的文件夹(标签)列表+收件箱、草稿等默认文件夹。如何列出所有可用文件夹(默认文件夹和用户创建的文件夹)
我可以使用以下API访问特定文件夹:Folder inbox = store.getFolder("Inbox");
。是否有其他API来获取邮件帐户中可用的文件夹列表
你可以在下面搜索框中键入要查询的问题!
我正在使用JavaMail API连接到我的个人帐户。我的Gmail帐户中有我创建的文件夹(标签)列表+收件箱、草稿等默认文件夹。如何列出所有可用文件夹(默认文件夹和用户创建的文件夹)
我可以使用以下API访问特定文件夹:Folder inbox = store.getFolder("Inbox");
。是否有其他API来获取邮件帐户中可用的文件夹列表
# 1 楼答案
Sergey很接近,但是默认情况下JavaMail的
list()
执行LIST "" %
,这只提供顶级文件夹。GMail将其系统文件夹(所有邮件、草稿、已发送邮件、垃圾邮件、星号和垃圾)放在不可选择的文件夹[Gmail]
下,因此您确实需要执行LIST "" *
。否则,您将返回INBOX
、[Gmail]
和您的标签下面是一些连接到GMail的示例代码,获取文件夹列表,并打印出每个非
\NoSelect
文件夹的名称和消息计数(即不只是层次结构占位符的文件夹,如[Gmail]
):# 2 楼答案
您可以像这样访问其他文件夹
等等
# 3 楼答案
您可以尝试以下方法:
# 4 楼答案
下面是有效的代码。这将为您提供所有标签的句柄。要深入
folder
,您可以执行folder.list()
或使用store.getDefaultFolder().list("*")
检索其他答案中建议的所有文件夹和子文件夹输出:
旧答案
请注意这是不正确的,它在this answer中被dkarp正确地指出了
这些应该可以:http://java.sun.com/products/javamail/javadocs/javax/mail/Store.html#getSharedNamespaces%28%29
http://java.sun.com/products/javamail/javadocs/javax/mail/Store.html#getUserNamespaces%28java.lang.String%29
# 5 楼答案
那
store.getDefaultFolder().list()
怎么样?不过,只是猜测而已