【问题标题】:Android - Java mail - Gmail 'Mark as unread' & Inbox 'Snooze'Android - Java 邮件 - Gmail“标记为未读”和收件箱“暂停”
【发布时间】:2018-10-18 04:44:12
【问题描述】:

我自制的 Android 电子邮件客户端应用程序,使用 Java 邮件,可以很好地与谷歌邮件服务配合使用。

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

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

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

正如 Google 在 How Inbox works with 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's extensions,但找不到答案。

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

谢谢。

【问题讨论】:

  • 您是否尝试过使用 JavaMail 转储已暂停消息的标头和消息标志?
  • @BillShannon 我没有看到标志有任何差异。我会再次检查以 100% 确定。
  • @BillShannon 仅供参考,我还检查了消息 systemFlags 和 userFlags,但没有关于“暂停”消息(cfr user Flags from message]
  • 如果您有两台设备运行 Inbox,在一台设备上打盹是否会在另一台设备上显示为打盹?打盹状态是在客户端还是服务器中保持? Inbox 也有可能使用 Gmail 专有协议而不是 IMAP 来访问服务器上的邮件。该协议可能有办法保存通过 IMAP 不可见的打盹状态。
  • 您的问题的答案在这里:support.google.com/inbox/answer/6067583?hl=en。我想我将无法使用 JavaMail 使用贪睡功能。

标签: android gmail jakarta-mail google-inbox


【解决方案1】:

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

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

即使它们没有出现在 Gmail labels.list API 中,您可以threads.listmessages.list 中通过 q(查询)参数使用这些特殊的收件箱标签搜索.

因此,要确定一条消息是否从您的代码中延后,请查看其消息 ID 是否出现在使用 q=label:snoozed 调用的 messages.list 中。

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

【讨论】:

  • 非常感谢!稍后我会试一试(目前有点忙)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 2016-02-28
  • 2014-03-01
  • 2011-12-02
  • 2017-09-02
相关资源
最近更新 更多