问题描述
我正在努力获取电子邮件的大型文本语料库。在Google Group中没有允许阅读消息的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:
时,它正常工作。当我将from:
替换为组电子邮件ID时,结果为零。我可以获得通过我的Gmail获取群gmail的实际代码吗?
第二个问题是
当我使用某人的邮件查询时:
results = service.users().messages().list(userId='me',q="from:xyz@wso2.com", maxResults=10).execute()
我得到的结果是这样的
{'resultSizeEstimate': 82, 'messages': [{'id': '1653929b0b414390', 'threadId': '1644c19f390faf28'}, {'id': '165330aaa5bb9134', 'threadId': '16532ef13e7eec8d'}......
这里它只返回消息id。为了获得带有标题的正文的邮件,我必须再次查询每个id。我不能在一个查询中获得完整的JSON吗?
推荐答案
对于第一部分,您的查询是向后的:电子邮件被发送到组,来自用户。此查询应返回发送到组的所有消息:
to:support-dev-group@wso2.com
(您可以很容易地在Gmail中测试它,因为它在搜索框中使用相同的查询规范)。
接下来,要获取给定消息ID的完整消息,请使用users.messages.get
和格式‘Full’选项,请参阅:https://developers.google.com/gmail/api/v1/reference/users/messages/get
来自"将客户端与Gmail同步"https://developers.google.com/gmail/api/guides/sync
调用Messages.list以检索消息ID的第一页。
创建Messages.Get请求的批处理请求 LIST请求返回的消息。如果您的应用程序显示 消息内容,应首先使用FORMAT=FULL或FORMAT=RAW 应用程序检索消息并将结果缓存到 避免额外的检索操作。如果要检索的是 以前缓存的消息,则应使用FORMAT=MINIMAL来减少 响应的大小,因为只有LabelID可以更改。 将更新合并到缓存结果中。您的应用程序应该 存储最新消息(第一条消息位于 列表响应)以供将来进行部分同步。
参见:https://developers.google.com/gmail/api/guides/batch
这篇关于使用Gmail API获取Google Group电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!