通过在 gmail 中应用高级过滤器来获取电子邮件列表 api

Get emails list by applying advanced filter in gmail api

我正在使用 gmail api 发送和阅读电子邮件。

我需要通过应用一些过滤器来获取所有电子邮件。

例如:假设我需要获取我和其他 N 个用户之间的所有电子邮件(user1@gmail.com, user2@gmail.com,.......)

我需要来自收件箱和发件箱的所有电子邮件,方法是应用这样的过滤器(我发送给用户或用户发送给我的所有电子邮件,不包括聊天)

我可以通过以下方法从收件箱中获取所有消息。

public List<Message> getMessages(Gmail service) throws IOException {
    List<Message> messages = service.users().messages().list("me").execute().getMessages();
    return messages;
}

经过一些研究后,我能够应用这样的查询,returns user1@gmail.com 发送的所有收件箱消息不包括聊天[=14] =]

public List<Message> getMessages(Gmail service) throws IOException {
    String query = "-in:chats from:user1@gmail.com";
    List<Message> messages = service.users().messages().list("me").setQ(query).execute().getMessages();
    return messages;
}

如果我将查询更改为此

String query = "in:inbox OR in:sent";

然后我可以将收件箱中的所有电子邮件和已发送的电子邮件合并,但我仍然只能过滤给定用户和我之间的对话。

我搜索了很多但没有找到解决方案。

使用这个过滤器:

String query = "(from:me AND to:user1@gmail.com) OR (from:user1@gmail.com AND to:me) AND (in:inbox OR in:sent)  AND -in:chats"

String query = "((from:me AND to:user1@gmail.com) OR (from:user1@gmail.com AND to:me)) AND (in:inbox OR in:sent)  AND -in:chats"

在 Gmail 桌面中手动测试时,它正在我这边工作。

参考: