Получать адреса электронной почты из полученных сообщений Gmail

Как я могу экспортировать список, содержащий адреса электронной почты для всех, кто отправил мне электронное письмо? У меня есть все архивированные сообщения.

31 голос | спросил Brad 30 22010vEurope/Moscow11bEurope/MoscowTue, 30 Nov 2010 18:30:28 +0300 2010, 18:30:28

11 ответов


13

Я очень удивлен всеми сложными ответами, подразумевающими некоторые дополнительные инструменты! У каждого получаемого вами письма добавлен адрес «Все контакты» (в отличие от «Мои контакты») в разделе «Контакты» Gmail. Экспортируйте это, и вы закончили (или я что-то пропустил в вашем вопросе).

ответил Patrick Honorez 29 MonEurope/Moscow2014-12-29T11:44:55+03:00Europe/Moscow12bEurope/MoscowMon, 29 Dec 2014 11:44:55 +0300 2014, 11:44:55
27

Здесь вы можете использовать силу скрипта Google Apps. Если вы вставляете следующий скрипт в новую таблицу Google (Tools, Script editor, нажмите значок ошибки, чтобы аутентифицировать скрипт), то новые листы будут автоматически создаваться на основе о количестве представленных этикеток. После этого будут добавлены адреса электронной почты.

function getEmails() {
  // set spreadsheet and retrieve labels
  var ss = SpreadsheetApp.getActiveSpreadsheet();  
  var labels = GmailApp.getUserLabels(), emptyLabels = [];

  // itterate through the labels
  for (var i=0; i<labels.length; i++) {

    try {
      // create sheets and clear content
      var sh = ss.getSheetByName(labels[i].getName()) || 
      ss.insertSheet(labels[i].getName(), ss.getSheets().length);
      sh.clear();

      // get all messages
      var eMails = GmailApp.getMessagesForThreads(
        GmailApp.search("label:" + labels[i].getName()))
          .reduce(function(a, b) {return a.concat(b);})
          .map(function(eMails) {
        return eMails.getFrom() 
      });

      // sort and filter for unique entries  
      var aEmails = eMails.sort().filter(function(el,j,a)
        {if(j==a.indexOf(el))return 1;return 0});  

      // create 2D-array
      var aUnique = new Array();  
      for(var k in aEmails) {
        aUnique.push([aEmails[k]]);
      }

      // add data to corresponding sheet
      sh.getRange(1, 1, aUnique.length, 1).setValues(aUnique);
    } catch (e) {
      emptyLabels.push(labels[i].getName());
    }
   }
   ss.toast("These sheets are empty: " + emptyLabels);
}

Используйте функцию SPLIT, чтобы извлекать имена для поиска дубликатов. Системные папки игнорируются, например INBOX или All Items.

Примечание: сценарий может занять некоторое время, что, конечно, зависит от количества сообщений электронной почты

ответил Jacob Jan Tuinstra 6 Mayam13 2013, 00:09:24
7

Обновление 2017

Starbanana изменила имя ther на deep-e-mail-extractor, и она также напоминает обновленный пользовательский интерфейс приложения и заставила его работать с несколькими учетными записями (обнаружив, что он только что вошел в мое приложение), изменив ссылку ниже, чтобы отразить это.

Оригинальный ответ

Если вам нужно быстрое настольное приложение (а не сценарий), рассмотрите это.

Я довольно много искал приложение, которое работает на уровне ярлыков, и нашел Gmail Email Exporter из глубоко- электронная почта-экстрактор .

Это платное приложение (я не имею к этому никакого отношения), но он дешевый, и вы можете экспортировать адреса электронной почты из определенных ярлыков или всей своей учетной записи Gmail.

Итак, в вашем случае поместите все ваши письма, полученные в метку, используя фильтр, и используйте приведенное выше для экспорта в файл CSV.

ответил LenPopLilly 20 22012vEurope/Moscow11bEurope/MoscowTue, 20 Nov 2012 16:31:55 +0400 2012, 16:31:55
5

Следующее приложение бесплатное и прекрасно работает!

http://www.labnol.org/internet/extract-gmail-addresses/28037/

ответил MidGe 16 Jpm1000000pmThu, 16 Jan 2014 16:51:34 +040014 2014, 16:51:34
4

Единственный способ сделать это -

  1. Экспортировать все как .txt (см. Экспорт сообщений Gmail в текстовые или HTML-файлы )
  2. Прокрутите все его и grep строки «From:» в отдельной базе данных.

Примечание. Если вы используете imapsize (бесплатно) для шага 1, сохраните резервные копии как «% FROM - отправитель электронной почты», и вы их видите в своем каталоге.

ответил edelwater 1 WedEurope/Moscow2010-12-01T00:17:02+03:00Europe/Moscow12bEurope/MoscowWed, 01 Dec 2010 00:17:02 +0300 2010, 00:17:02
4

Confused /Non-Technical /No Idea Что делать?

Попробуйте следующее шаг за шагом и благодаря https://webapps.stackexchange.com/a/47930/6329

шаг 1. drive.google.com

шаг 2. новая таблица

шаг 3. инструменты> редактор сценариев

шаг 4. закрыть ввод с помощью кнопки закрытия

шаг 5. вставить код

function getEmails() { 
  // http://stackoverflow.com/a/12029701/1536038  
  // get all messages      
  var eMails = GmailApp.getMessagesForThreads(
    GmailApp.search('after:2012/1/14 before:2013/8/15'))
      .reduce(function(a, b) {return a.concat(b);})
      .map(function(eMails) {
    return eMails.getFrom() 
  });

  // sort and filter for unique entries  
  var aEmails = eMails.sort().filter(function(el,j,a)
    {if(j==a.indexOf(el))return 1;return 0});  

  // create 2D-array
  var aUnique = new Array();  
  for(var k in aEmails) {
    aUnique.push([aEmails[k]]);
  }

  // add data to sheet
  SpreadsheetApp.getActiveSheet().getRange(1, 1, aUnique.length, 1)
    .setValues(aUnique);
} 

шаг 6. поместите курсор внутри слова «getEmails» в первой строке

шаг 7. нажмите кнопку треугольника воспроизведения выше в строке меню

шаг 8. Он просит вас пройти аутентификацию, сделайте это

шаг 9. нажмите кнопку воспроизведения еще раз, если она еще не запущена

шаг 10. проверьте свою оригинальную электронную таблицу и получите электронные письма.

ответил Jason 24 +04002014-10-24T05:26:08+04:00312014bEurope/MoscowFri, 24 Oct 2014 05:26:08 +0400 2014, 05:26:08
3
  1. Перейдите к списку. Выберите раскрывающийся список флажков и выберите все.
  2. [В верхней части вы получите опцию гиперссылки, чтобы выбрать все разговоры в вашем списке. Нажмите его.] Обновление: этот шаг не работает, он позволит вам делать только 25 за один раз, облом!!
  3. Затем перейдите в раскрывающийся список «Больше» и выберите такие сообщения фильтров, как эти.
  4. В диалоговом окне фильтра будет выделено текстовое поле From. Это все из адресов.
  5. Скопируйте его.
  6. Вставьте его в редактор HTML, например Notepad ++ или Visual Studio.
  7. Теперь вам просто нужно выполнить поиск и заменить слово OR, заменить на; или , .
  8. Скопируйте список и вставьте в свое сообщение.
ответил Jason 16 AM00000030000004931 2013, 03:29:49
3

Основываясь на ответе @ jacob-jan-tuinstra. Сделал некоторые незначительные изменения в соответствии с моими потребностями, возможно, другие сочтут это полезным.

Использует поиск, не разбивается на ярлыки, а также блокирует большие почтовые ящики.

Часть, в которой говорится, что «ВАШ ЗАПРОС ПОИСКА ПОКАЗАТЕЛЯ GOERE ЗДЕСЬ» может быть заполнен любым запросом, который вы использовали бы в своем почтовом ящике.

function getEmails() {
  // set spreadsheet and retrieve labels
  var query = 'YOUR GMAIL SEARCH QUERY GOES HERE',
    ss = SpreadsheetApp.getActiveSpreadsheet(),
    sh = ss.getSheetByName(query) || ss.insertSheet(query, ss.getSheets().length),
    uniqueEmails = {},
    errors = [],
    // max chunk size
    chunkSize = 500,
    currentChunk = 0,
    threads,
    messages,
    i,
    j,
    k,
    msg,
    tos;
  sh.clear();
  while (currentChunk === 0 || threads.length === chunkSize) {
    try {
      // grab threads that match the query one chunk at a time
      threads = GmailApp.search(query, chunkSize * currentChunk, chunkSize);
      // grab corresponding messages from the threads
      messages = GmailApp.getMessagesForThreads(threads);
      for (i = 0; i < messages.length; i++) {
        msg = messages[i];
        for (j = 0; j < msg.length; j++) {
          // get the from
          uniqueEmails[msg[j].getFrom()] = true;
          // get the reply to
          uniqueEmails[msg[j].getReplyTo()] = true;
          // grab from the to field as well
          // this has a bug for people with commas in their names
          // tos = msg[j].getTo().split(',');
          // for (k = 0; k < tos.length; k++) {
          //  uniqueEmails[tos[k]] = true;
          // }
        }
      }
      currentChunk += 1;
    } catch (e) {
      errors.push(e);
    }
  }
  // create 2D-array
  var aUnique = [];
  for (k in uniqueEmails) {
    aUnique.push([k]);
  }

  // add data to corresponding sheet
  sh.getRange(1, 1, aUnique.length, 1).setValues(aUnique);
}
ответил varblob 5 Maypm14 2014, 15:29:55
1

Я вычислил способ сделать это для пользователей Mac, используя Mac Mail и адресную книгу, не загружая дополнительное программное обеспечение. Это работает с Mac Mail 4.6 и адресной книгой 5.0.3. Не уверен, работает ли он для других версий или нет. Это может работать аналогично для других программ электронной почты IMAP, таких как Thunderbird, но я не могу ручаться за это.

Вот шаги:

  1. Настройте свою учетную запись Gmail в Mac Mail. Убедитесь, что входящий почтовый сервер «imap.gmail.com». Это можно найти в панели инструментов> Почта> Упорядочения & Учетные записи.
  2. В Gmail создайте ярлык для писем, для которых вы хотите извлечь адреса электронной почты.
  3. В Gmail пометьте все электронные письма, которые вы хотите, на ярлык выше.
  4. В Gmail перейдите в «Настройки» и «Ярлыки» и поставьте галочку для нового созданного ярлыка, в котором говорится «Показать в IMAP».
  5. Перезапустите Mac Mail, чтобы синхронизация новой метки Gmail.
  6. Открыть адресную книгу. Если вы используете адресную книгу для своих контактов, вам необходимо создать резервную копию своих контактов, потому что вам нужно удалить все контакты в адресной книге. Я считаю, что вы можете сделать это с помощью файла> Экспорт> Архив адресной книги. Я не использую адресную книгу, кроме как для экспорта писем Gmail, поэтому я не могу дать вам хороший совет. Удалите контакты адресной книги на свой страх и риск.
  7. В адресной книге удалите все ваши контакты. Вы должны сделать это, выбрав один контакт, нажав Command + a и нажав клавишу удаления.
  8. В Mac Mail найдите свою папку IMAP. В левой части окна должен быть столбец со всеми вашими почтовыми ящиками. Если вы не заходите на верхнюю панель инструментов, выберите «Показать» и «Показать почтовые ящики» или нажмите «Command + Shift + M». Папка IMAP будет находиться в нижней части столбца ниже «Напоминания», «RSS», «На моем компьютере» и т. Д. Вы должны увидеть имя своей учетной записи Gmail, которое вы установили ранее, с помощью стрелки вниз слева.
  9. В Mac Mail щелкните стрелку вниз рядом с вашим почтовым ящиком. Это покажет вам список папок и отобразит ярлык, который вы создали в Gmail, в виде папки. Выберите эту папку, щелкнув ее.
  10. В Mac Mail в окне «Сообщения»), в котором теперь должны отображаться все ваши письма для вашей метки Gmail), выберите все электронные письма в списке. Перейдите на верхнюю панель инструментов, выберите Сообщения> Добавить отправителей в адресную книгу или нажмите Shift + Command + Y. Все отправители для вашей метки Gmail теперь должны быть в адресной книге.
  11. В адресной книге вы можете теперь экспортировать контакты как vCards для использования в любой другой программе, перейдя на панель инструментов и выбрав «Файл> Export> Export vCards». Вы даже можете импортировать обратно в Google Contacts. Если вам нужен CSV-файл, к сожалению, вам нужно будет импортировать vCards в другую программу (работа Google Contacts) и реэкспортировать, потому что вы не можете экспортировать CSV из Mac Mail.

Надеюсь, это поможет! Это немного громоздко, но работает для меня и довольно легко после того, как вы это сделаете пару раз.

ответил JP5678 30 PMpWed, 30 Apr 2014 23:08:15 +040008Wednesday 2014, 23:08:15
0

MineMyMail извлекает все ваши сообщения через IMAP, а затем извлекает из него адреса электронной почты.

Вы можете выбрать, какие папки он ищет, выбрав папку «Отправленная почта» /метка.

ответил Jason Vallery 1 MarpmFri, 01 Mar 2013 23:09:13 +04002013-03-01T23:09:13+04:0011 2013, 23:09:13
0

IMAP Addresses Exporter - это приложение для Mac, которое подключается к любой учетной записи электронной почты IMAP и извлекает каждый адрес отправителя, также из установленных вами папок /ярлыков. Справедливости ради стоит подчеркнуть, что она разработана моей компанией.

ответил flip79 20 MaramWed, 20 Mar 2013 01:39:26 +04002013-03-20T01:39:26+04:0001 2013, 01:39:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132