通过联系频率从GMAIL,GROUP和SORT中提取所有电子邮件

时间:2015-03-28 12:51:01

标签: email google-apps-script gmail google-docs

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

经过一些谷歌搜索

  • 我试图导出联系人(有一个选项可以选择最常联系的人) - 但这导致了20个联系人。似乎Gmail正在计算......
  • labnol有一个脚本可以导出所有电子邮件地址......但这个速度相当慢。不做计数

问题:如何通过电子邮件地址从GMAIL和GROUP和SORT中提取所有电子邮件地址?

向IMAP的出口是否有效(并从那里开始计算)?还是有更聪明的方式

非常感谢

1 个答案:

答案 0 :(得分:0)

您有两个选择

  1. 您确实可以从IMAP中提取标题(只是标题,您不需要完整的邮件正文)。
  2. 您可以使用Gmail API。如果你想计算谁给你发送消息,那么这样的事情应该有效。
  3. 使用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
    

    https://gist.github.com/regisd/3b4733e974483d7994fe