有没有办法使用 Gmail 的 API 将电子邮件标记为已读/已看?链接到下面的 API



我尝试过整个事情,也阅读Java客户端参考,但似乎没有办法做到这一点,这很奇怪,因为可以使用Gmail的IMAP将电子邮件标记为已读。

似乎只能在消息中添加/删除标签

有人能证实吗?

您可以添加/删除UNREAD标签,它将更新电子邮件状态。在joshmeranda和Linda Lawton - DaImTo的评论中已经提到了这一点,但是我想提供一个使用Java的代码作为示例。

这将使用给定的messageId通过将其状态从READ交换到UNREAD或反之亦然来更新消息:

String user = "A_USER_ID"; //<- use "me" to use the authenticated user's ID.
String messageId = "A_MESSAGE_ID";
Message message = service.users().messages().get(user, messageId).execute();
if (message.getLabelIds().contains("UNREAD")) {
ModifyMessageRequest modifyRequest = new ModifyMessageRequest()
.setRemoveLabelIds(Arrays.asList(new String[] { "UNREAD" }));
Message modifiedMessage = service.users().messages().modify(user, messageId, modifyRequest).execute();
} else {
ModifyMessageRequest modifyRequest = new ModifyMessageRequest()
.setAddLabelIds(Arrays.asList(new String[] { "UNREAD" }));
Message modifiedMessage = service.users().messages().modify(user, messageId, modifyRequest).execute();
}
参考:

  • Gmail API Java快速入门获取Gmail service对象。

最新更新