首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Gmail API获取谷歌集团电子邮件

使用Gmail API获取谷歌集团电子邮件
EN

Stack Overflow用户
提问于 2018-08-15 11:34:54
回答 1查看 6.4K关注 0票数 4

我正在努力获得大型文本的电子邮件语料库。在Google中没有允许读取消息的API。因此,另一种方法是使用Gmail帐户,Gmail帐户是该组的成员。通过使用这个Gmail,我可以检查发送给该组的所有消息。我使用python和Gmail来获取邮件。我面临的问题是,我无法从团体中获取电子邮件。

results = service.users().messages().list(userId='me',q="from:support-dev-group@wso2.com", maxResults=10).execute()

当我用另一个普通用户id替换from:时,它正在工作。当我用组电子邮件id替换from:时,结果为零。我能得到通过我的Gmail获取组邮件的实际代码吗?

第二个问题是,

当我使用某人的邮件查询时:

代码语言:javascript
复制
results = service.users().messages().list(userId='me',q="from:xyz@wso2.com", maxResults=10).execute()

我得到了这样的结果

代码语言:javascript
复制
{'resultSizeEstimate': 82, 'messages': [{'id': '1653929b0b414390', 'threadId': '1644c19f390faf28'}, {'id': '165330aaa5bb9134', 'threadId': '16532ef13e7eec8d'}......

这里只返回消息id。为了获得带有标头的主体的邮件,我必须再次查询每个id。我不能在一个查询中获得完整的JSON吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-18 12:18:22

对于第一部分,您的查询是向后的:电子邮件消息从用户发送到组。此查询应返回发送给组的所有消息:

代码语言:javascript
复制
to:support-dev-group@wso2.com

(您可以很容易地在Gmail中测试它,因为它在搜索框中使用了相同的查询规范)。

接下来,要获得给定消息id的完整消息,请使用users.messages.get和格式' full‘选项,请参见:https://developers.google.com/gmail/api/v1/reference/users/messages/get

您确实必须对每条消息调用一次,但是您可以提交一批get请求来高效地执行一次。然后,您可以使用历史ids只获取新消息:

来自“同步客户端与Gmail”的https://developers.google.com/gmail/api/guides/sync

调用messages.list检索消息ID的第一页。 为列表请求返回的每个消息创建一个messages.get请求的批处理请求。如果应用程序显示消息内容,则应在应用程序第一次检索消息并缓存结果时使用format=FULL或format=RAW,以避免额外的检索操作。如果要检索以前缓存的消息,则应该使用format=MINIMAL来减小响应的大小,因为只有labelIds可能会更改。 将更新合并到缓存的结果中。您的应用程序应该存储最近消息(列表响应中的第一条消息)的historyId,以便将来进行部分同步。

请参阅:https://developers.google.com/gmail/api/guides/batch

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51857925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档