use*_*861 5 java gmail tabs jakarta-mail
我工作的应用程序,可以决定哪些Gmail标签中的电子邮件被置于下(即Social,Promotions等)。有什么方法可以确定使用 Javamail API 将电子邮件放入哪个 Gmail 标签?或者是否有其他一些应用程序可以确定这一点?
提前致谢。
JavaMail API 和 Gmail API 的标准 IMAP/SMTP 功能一起就足够了,甚至可以处理标签。但要获取自定义 Gmail 属性 X-GM-THRID 和 X-GM-LABELS,请查看Gmail Imap 扩展。
\n\n为了从 Gmail 获取邮件列表,您必须实现标准 javamail 配置文件获取:
\n\nfolder.fetch(msgs, stdFetchProfile);\nRun Code Online (Sandbox Code Playgroud)\n\n现在要从 Gmail 获取标签/选项卡/标签列表,请使用以下命令调用自定义方法IMAPFolder\xe2\x80\x99s doCommand()
final MessageSet[] mSets = MessageSet.createMessageSets(mns);\n((IMAPFolder) folder).doCommand(new IMAPFolder.ProtocolCommand() {\n @Override\n public Object doCommand(IMAPProtocol p) throws ProtocolException {\n try {\n Response[] r = p.fetch(mSets, "X-GM-LABELS X-GM-THRID");\n for (int i = 0; i < r.length; i++) {\n if (!FetchResponse.class.isInstance(r[i]))\n continue;\n\n // Got a FetchResponse.\n GmailFetchResponse gfr = new GmailFetchResponse(\n ((FetchResponse) r[i]).toString());\n // Use gfr.getNumber() to get the msg number\n for (int j = 0; j < gfr.getItemCount(); j++) {\n Item item = gfr.getItem(j);\n if (X_GM_LABELS.class.isInstance(item))\n // get the labels\n ((X_GM_LABELS) item).x_gm_labels);\n }\n }\n } catch (ProtocolException e) {\n logError(e.getMessage(), e);\n }\n return null;\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n然后您需要使用java-gmail-imap \' parse() 方法重新解析。
\n\n以下链接对上述实现进行了很好的解释。
\n\n\n\n希希尔
\n| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |