当前位置: 首页 > 面试题库 >

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

苍宜修
2023-03-14
问题内容

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

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


问题答案:

这是有效的代码。这将使您处理所有标签。要深入了解folder,您可以执行,也可以按照其他答案的建议folder.list()使用store.getDefaultFolder().list("*")来检索所有文件夹和子文件夹。

Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "YOURMAILID@gmail.com", "UR_P@ZZWRD");
System.out.println(store);

Folder[] f = store.getDefaultFolder().list();
for(Folder fd:f)
    System.out.println(">> "+fd.getName());

输出:

收件箱
个人
收据
旅行
工作
[Gmail]

老答案

请注意,这是不正确的,它是在正确地指出这个答案由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



 类似资料:
  • 我正在编写一个UWP程序,它使用MS G想像获取用户的邮件文件夹,然后是消息。 我在 Azure AD 和 Office 365 中担任管理员时,使用我的凭据获取访问令牌。用我的 ID = 我的别名调用它工作正常。var mailFolderPage = await graphClient.Users[id].MailFolder.Request().GetAsync(); 但当id=某人别名时调

  • null googleapiclient.errors.httperror:https://www.googleapis.com/gmail/v1/users/me/labels?alt=json返回“错误请求&>; 但是当我从https://console.developers.google.com/apis/api/gmail.googleapis.com/Quotas检查配额时,会显示我使用

  • 文档不清楚如何从文件夹中获取文件。显然,可以使用来限制结果,但没有一个选项包含路径或文件夹,至少不是显式的。

  • 问题内容: 我想使用php阅读列表,列出网页文件夹中的文件名。有没有简单的脚本可以实现? 问题答案: 最简单,最有趣的方式(imo)是glob 但是标准方法是使用目录功能。 还有SPL DirectoryIterator方法 。如果你感兴趣

  • 我使用JavaMail和协议imap来组织电子邮件(gmail)。我创建了一个文件夹FOLDER1,代码如下: 我用代码移动消息: 它的工作原理 但我不明白。。。如果我想再次阅读邮件,但不想阅读已阅读的邮件,也不想阅读已创建文件夹中的邮件,则无法再次阅读。该名称已在收件箱中 有什么问题吗? 谢谢你的帮助

  • 问题 你想获取文件系统中某个目录下的所有文件列表。 解决方案 使用 os.listdir() 函数来获取某个目录中的文件列表: import os names = os.listdir('somedir') 结果会返回目录中所有文件列表,包括所有文件,子目录,符号链接等等。 如果你需要通过某种方式过滤数据,可以考虑结合 os.path 库中的一些函数来使用列表推导。比如: import os.pa