Sat*_*gan 6 python email gmail google-groups gmail-api
我正在努力获取电子邮件的大型文本语料库。没有允许读取 Google 网上论坛中的消息的 API。因此,另一种方法是使用属于该组成员的 Gmail 帐户。通过使用此 Gmail,我可以检查发送到该组的所有邮件。我正在使用 python 和 Gmail API 来获取邮件。我面临的问题是,我无法获取来自群组的电子邮件。
results = service.users().messages().list(userId='me',q="from:support-dev-group@wso2.com", maxResults=10).execute()
当我用另一个普通用户 ID 替换 时,from:它就可以工作了。当我用组电子邮件 ID 替换 时,from:它给出的结果为零。我可以获得通过 Gmail 获取群组 Gmail 的实际代码吗?
第二个问题是,
当我使用某人的邮件查询时:
results = service.users().messages().list(userId='me',q="from:xyz@wso2.com", maxResults=10).execute()
Run Code Online (Sandbox Code Playgroud)
我得到这样的结果
{'resultSizeEstimate': 82, 'messages': [{'id': '1653929b0b414390', 'threadId': '1644c19f390faf28'}, {'id': '165330aaa5bb9134', 'threadId': '16532ef13e7eec8d'}......
Run Code Online (Sandbox Code Playgroud)
这里只返回消息id。为了获取带有标题的正文的邮件,我必须再次查询每个 id。我无法在一次查询中获取完整的 JSON 吗?
对于第一部分,您的查询是向后的:电子邮件从用户发送到组。此查询应返回发送到该组的所有消息:
to:support-dev-group@wso2.com
Run Code Online (Sandbox Code Playgroud)
(您可以在 Gmail 中轻松测试这一点,因为它在搜索框中使用相同的查询规范)。
接下来,要获取给定消息 ID 的完整消息,请使用users.messages.get格式“完整”选项,请参阅: https: //developers.google.com/gmail/api/v1/reference/users/messages/get
您必须为每条消息调用一次,但您可以提交一批获取请求以高效地执行一次。然后你可以使用历史记录 id 来仅获取新消息:
来自“将客户端与 Gmail 同步” https://developers.google.com/gmail/api/guides/sync
调用 messages.list 以检索消息 ID 的第一页。
为列表请求返回的每条消息创建 messages.get 请求的批量请求。如果您的应用程序显示消息内容,则应在应用程序第一次检索消息时使用 format=FULL 或 format=RAW 并缓存结果以避免额外的检索操作。如果您要检索以前缓存的消息,则应使用 format=MINIMAL 来减小响应的大小,因为只有 labelId 可能会更改。
将更新合并到缓存结果中。您的应用程序应存储最新消息(列表响应中的第一条消息)的historyId,以供将来部分同步。
请参阅: https: //developers.google.com/gmail/api/guides/batch
| 归档时间: |
|
| 查看次数: |
9264 次 |
| 最近记录: |