gmail API是否允许搜索字符串并返回具有此字符串的所有邮件,但将列表限制为每封电子邮件地址1封电子邮件。
例如,我想查找包含特定用户名的所有邮件,但该列表每个地址只包含一封电子邮件。
答案 0 :(得分:1)
遗憾的是,不支持使用Gmail API进行这些类型的复杂查询。
这些方面的东西将完成它:
List messages将您的搜索字符串作为q
- 参数,直到响应中没有nextPageToken
(然后您将获得查询的每个结果)。< / p>
Get all matching messages,只询问From
- 标头,并自行查找所有唯一发件人(batch requests对此用例非常有用)。
示例强>
列出邮件ID
q = feel the bern
fields = messages(id),nextPageToken
GET https://www.googleapis.com/gmail/v1/users/me/messages?q=feel+the+bern&fields=messages(id)%2CnextPageToken&access_token={YOUR_API_KEY}
<强>响应强>
{
"messages": [
{
"id": "151c1de994ad5e43"
},
{
"id": "1514f614e6c07c3f"
}, ...
]
}
获取每条消息(批量)
format = metadata
metadataHeaders = from
fields = id,payload/headers
GET https://www.googleapis.com/gmail/v1/users/me/messages/151c1de994ad5e43?format=metadata&metadataHeaders=from&fields=id%2Cpayload%2Fheaders&access_token={YOUR_API_KEY}
<强>响应强>
{
"id": "151c1de994ad5e43",
"payload": {
"headers": [
{
"name": "From",
"value": "Official Bernie Store <info@berniesanders.com>"
}
]
}
},
{
"id": "151c1de994ad3e22",
"payload": {
"headers": [
{
"name": "From",
"value": "Emil Tholin <emtholin@gmail.com>"
}
]
}
}, ...
然后你可以通过电子邮件地址过滤掉邮件,然后获取剩下邮件的全部邮件。