gpt4 book ai didi

java - 如何使用 JavaMail 获取邮件帐户中可用文件夹的列表

转载 作者:IT老高 更新时间:2023-10-28 20:47:25 34 4
gpt4 key购买 nike

我正在使用 JavaMail API 连接到我的个人帐户。我在我创建的 Gmail 帐户中有文件夹(标签)列表 + 收件箱、草稿等默认文件夹。如何列出所有可用文件夹(默认文件夹和用户创建的文件夹)?

我可以使用以下 API 访问特定文件夹:Folder inbox = store.getFolder("Inbox");。是否有任何其他 API 可以获取邮件帐户中可用的文件夹列表?

最佳答案

Sergey 很接近,但默认情况下,JavaMail 的 list() 执行 LIST ""%,它只为您提供顶级文件夹。 GMail 将其系统文件夹(All Mail、Drafts、Sent Mail、Spam、Starred 和 Trash)放在不可选择的文件夹 [Gmail] 下,所以你真的需要做一个 LIST ""* 代替。否则,您只会取回 INBOX[Gmail] 和您的标签。

这里有一些示例代码连接到 GMail,获取文件夹列表,并打印出每个非 \NoSelect 文件夹的名称和消息计数(即那些不仅仅是层次占位符的文件夹) ,例如 [Gmail]):

Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getDefaultInstance(props, null);
javax.mail.Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "<username>@gmail.com", "<password>");
javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
for (javax.mail.Folder folder : folders) {
if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) {
System.out.println(folder.getFullName() + ": " + folder.getMessageCount());
}
}
} catch (MessagingException e) {
e.printStackTrace();
}

关于java - 如何使用 JavaMail 获取邮件帐户中可用文件夹的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4790844/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com