通过在 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 桌面中手动测试时,它正在我这边工作。
参考:
我正在使用 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 桌面中手动测试时,它正在我这边工作。
参考: