我尝试过整个事情,也阅读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
对象。