0

我自制的 Android 电子邮件客户端应用程序使用 Java 邮件,可与 google 邮件服务正常工作。

我想要一些建议的一个用例确实涉及“未读消息”:

每当我在 mail.google.com 中将电子邮件“标记为未读”时,我的移动应用程序都会相应地将该电子邮件更新为“未读”。好的。

现在我正在使用 inbox.google.com 并且“标记为未读”选项不再存在

正如 Google 的“收件箱如何与 Gmail 一起使用”页面中所解释的,有些操作是相同的,有些是相似的。

关于“标记为未读”功能,它不再出现在“收件箱”中。
相反,一个“贪睡”选项正在取代它:

In GMail (mail.google.com): 'Mark as Unread'
In Inbox (inbox.google.com): 'Snooze' (NOT identical to 'Mark as unread', but has 'similar' behavior)

问题:

在我的 android java 代码中,我如何才能确定一条消息被“延后”了?
我用谷歌搜索并检查了GMail 的扩展,但找不到答案。

注意:
我还检查了 Imap 消息 userFlags 和 systemFlags: nothing there :/

谢谢。

4

1 回答 1

1

看起来 Inbox 的许多功能都是作为一种特殊的标签实现的:您可以搜索的标签,但不能作为实际标签或 Gmail API(或 IMAP)中的任何类型的元数据显示的标签。

试试这个(如果您是 Inbox-by-Gmail 用户):打开 Gmail 网络客户端,然后label:snoozed在搜索框中输入。它应该会找到您所有已暂停的消息。也适用于label:pinnedlabel:done和(收件箱智能包)、label:trips等。(也可以尝试使用这些名称中的任何一个创建一个新标签:它们都是“保留供系统使用的”。)label:purchaseslabel:lowpriority

即使它们没有出现在 Gmail labels.list API 中,您也可以将这些特殊的收件箱标签搜索与threads.listmessages.listq中的(query) 参数一起使用。

因此,要确定是否从您的代码中暂停了一条消息,请查看其消息 id 是否出现在messages.listcall with q=label:snoozed中。

我看不到任何方法可以通过 API 在邮件上添加删除这些特殊的收件箱标签,除非/直到谷歌像其他标签一样公开它们。(FWIW,特殊的 Gmail 类别确实出现在 API 中,例如,“更新”是一个 id 为 CATEGORY_UPDATES 的系统标签。所以也许有希望像“snoozed”这样的东西也能进入 API,因为这些收件箱功能找到了它们的方式进入 Gmail。)

于 2018-10-17T20:44:12.430 回答