Email 从GMAIL中提取所有电子邮件,按联系频率分组和排序

Email 从GMAIL中提取所有电子邮件,按联系频率分组和排序,email,google-apps-script,gmail,google-docs,Email,Google Apps Script,Gmail,Google Docs,我想从GMAIL和GROUP中提取所有电子邮件地址,并按电子邮件地址排序。结果是我联系最多的电子邮件地址的排序列表 在谷歌搜索之后 我曾尝试导出联系人—有一个选项可以选择联系最多的联系人—但这导致了20个联系最多的联系人。似乎Gmail正在计数。。。 labnol有一个脚本可以导出所有电子邮件地址。。。但这相当慢&不算 问题:我如何从GMAIL和GROUP中提取所有电子邮件地址并按电子邮件地址排序 向IMAP的导出是否有效并从中计数?还是有更聪明的方法 非常感谢你有两个选择 您确实可以提取头文件

我想从GMAIL和GROUP中提取所有电子邮件地址,并按电子邮件地址排序。结果是我联系最多的电子邮件地址的排序列表

在谷歌搜索之后

我曾尝试导出联系人—有一个选项可以选择联系最多的联系人—但这导致了20个联系最多的联系人。似乎Gmail正在计数。。。 labnol有一个脚本可以导出所有电子邮件地址。。。但这相当慢&不算 问题:我如何从GMAIL和GROUP中提取所有电子邮件地址并按电子邮件地址排序

向IMAP的导出是否有效并从中计数?还是有更聪明的方法

非常感谢你有两个选择

您确实可以提取头文件,只提取头文件,不需要IMAP中的完整消息体。 你可以使用Gmail API。如果你想数一数谁给你发了信息,像这样的方法应该行得通。 在Python中使用Gmail API的示例代码

# Retrieve a page of threads
threads = gmail_service.users().threads().list(userId='me',fields='threads(id)').execute()

# Print ID for each thread
pp = pprint.PrettyPrinter(depth=5)
if threads['threads']:
  for thread in threads['threads']:
    print 'Thread ID: %s has messages from senders:' % (thread['id'])
    t = gmail_service.users().threads().get(userId='me',id=thread['id'],fields='messages/payload/headers').execute()
    for msg in t['messages']:
      for header_from in [v for v in msg['payload']['headers'] if v['name'] == 'From']:
      # There should be only one, but sometimes From is missing
        from_field_val = header_from['value']
        print from_field_val
        # TODO Extract email address and increment count