gpt4 book ai didi

java - IMAP 列表扩展 JAVA

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:33 26 4
gpt4 key购买 nike

我正在构建一个需要访问特定邮件文件夹(例如“[Gmail]/Trash”、“[Gmail]/Sent”)的工具。名称似乎根据用户本地化设置进行了本地化,因此“[Gmail]/Trash”对西类牙用户显示为“[Gmail]/Papelera”。

我阅读了 XLIST 命令,但现在已弃用,取而代之的是 IMAP LIST 扩展(https://developers.google.com/gmail/imap_extensions#special-use_extension_of_the_list_command)。

我尝试这样做 javax.mail.Folder.list("\Trash") 但没有返回任何内容。

如何在 JAVA 中使用 IMAP 列表扩展?

PS:使用多个电子邮件提供商,而不仅仅是 Gmail。

最佳答案

作为比尔·香农 said , 您可以使用 Gmail 属性来获取 special folders像垃圾。但这仅适用于 Gmail。

javax.mail.Folder[] folders = store.getDefaultFolder().list("*");

如果你打印这个,它应该看起来像下面的 Gmail

a004 LIST "" "*"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\Noselect \HasChildren) "/" "[Gmail]"
* LIST (\HasNoChildren \All) "/" "[Gmail]/All Mail"
* LIST (\HasNoChildren \Drafts) "/" "[Gmail]/Drafts"
* LIST (\HasNoChildren \Important) "/" "[Gmail]/Important"
* LIST (\HasNoChildren \Sent) "/" "[Gmail]/Sent Mail"
* LIST (\HasNoChildren \Junk) "/" "[Gmail]/Spam"
* LIST (\HasNoChildren \Flagged) "/" "[Gmail]/Starred"
* LIST (\HasNoChildren \Trash) "/" "[Gmail]/Trash"
a004 OK Success

有了文件夹后,您可以迭代查找您要查找的属性。

对于 [Gmail]/All MailmailFolder = "\\All"。同样对于 [Gmail]/Trash 它将是 mailFolder = "\\Trash"

private static IMAPFolder getLocalisedFolder(IMAPStore store, String mailFolder) throws MessagingException {
Folder[] folders = store.getDefaultFolder().list("*");
for (Folder folder : folders) {
IMAPFolder imapFolder = (IMAPFolder) folder;
for (String attribute : imapFolder.getAttributes()) {
if (mailFolder.equals(attribute)) {
return imapFolder;
}
}
}
return null;
}

关于java - IMAP 列表扩展 JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427859/

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