Oauth Gmail IMAP,为X个最近活跃的Gmail线程寻找最佳方法

Oauth Gmail IMAP,为X个最近活跃的Gmail线程寻找最佳方法,oauth,gmail,imap,gmail-imap,jakarta-mail,Oauth,Gmail,Imap,Gmail Imap,Jakarta Mail,我正在寻找一个最佳的方式来获得一个名单的前X名最近活跃的Gmail线程 背景: 我正在谷歌教育应用领域使用Java访问。有一个可用的,可以列出最后20个包含未读消息的线程。访问此提要的速度似乎比我使用OAuth/IMAP生成的任何东西都要快得多 与Gmail Atom收件箱订阅源相比,使用IMAP方法的优势在于,使用IMAP,我可以访问任意数量的邮件(不仅仅是20条),查看阅读邮件,获取线程大小,获取任何相关的google标签,获取配额详细信息,并检查标志。从本质上说,这将给我的用户一个更像Gm

我正在寻找一个最佳的方式来获得一个名单的前X名最近活跃的Gmail线程

背景:

我正在谷歌教育应用领域使用Java访问。有一个可用的,可以列出最后20个包含未读消息的线程。访问此提要的速度似乎比我使用OAuth/IMAP生成的任何东西都要快得多

与Gmail Atom收件箱订阅源相比,使用IMAP方法的优势在于,使用IMAP,我可以访问任意数量的邮件(不仅仅是20条),查看阅读邮件,获取线程大小,获取任何相关的google标签,获取配额详细信息,并检查标志。从本质上说,这将给我的用户一个更像Gmail的体验(我只需要我们的门户的只读体验)。我的问题是IMAP访问比Atom提要慢得多。就比较而言,IMAP方法大约需要10秒钟,而Atom提要通常在2秒钟内返回

我知道并一直在与和合作

当前方法:

假设我想要IMAP收件箱中的前40个线程。目前,我下载了一些任意数量的消息,比如(40*4),只获取X-GM-THRID。我在这些消息中迭代存储线程id(如果需要,获取更多消息),直到用尽收件箱消息列表或达到目标线程数

然后,我有一个Gmail线程ID列表,可以用来执行IMAP搜索(根据需要的消息详细信息,使用适当的FetchProfile.Item)

我反复搜索搜索结果,生成如下内容(使用奇妙的多重映射):

Multimap-threadMultiMap=LinkedListMultimap.create();
这是很容易按摩成:

LinkedHashMap<Long, Message[]> threadMap; 
LinkedHashMap线程映射;

有没有比在收件箱中迭代直到识别出X个不同的消息线程更好的方法?

实际上不是一个答案,而是一个相关的查询。


马克,根据你的api请求,我将发布一条评论作为回答()

您的库是否支持3条腿的oauth,我在repo中尝试在源代码上查找XoauthAuthenticator,但找不到它

谢谢


你好,阿加列戈

我使用XOAUTH。JavaMail中没有任何明确的内容需要对XOAUTH进行任何更改

如果您查看XOAUTH项目(和),您将看到您可以创建一个SASL提供程序,用于对Gmail进行身份验证。见例

我希望这有帮助

标记

LinkedHashMap<Long, Message[]> threadMap;