Erhalten Sie E-Mail-Adressen aus erhaltenen Google Mail-Nachrichten


33

Wie kann ich eine Liste mit E-Mail-Adressen für alle exportieren, die mir eine E-Mail gesendet haben? Ich habe alle Nachrichten archiviert.


deep-email-extractor.com ist dein Freund. Bezahlt, aber sicher und verwendet zweistufige Passwörter. Ich habe es vor ein paar Jahren gekauft und benutze es immer noch, ziemlich praktisch
Tino Mclaren

Ich kann noch keine Antwort schreiben (nicht genug Wiederholungen), aber die Antwort von Jerry Neumann hier in Python funktioniert wunderbar!
Basj

Antworten:


13

Ich bin ziemlich überrascht von all den komplizierten Antworten, die einige zusätzliche Tools erfordern! Für jede E-Mail, die Sie erhalten, wird die Adresse im Bereich "Kontakte" von Google Mail unter "Alle Kontakte" (im Gegensatz zu "Meine Kontakte") hinzugefügt. Exportieren Sie diese und Sie sind fertig (oder ich habe etwas in Ihrer Frage verpasst).


Das würde großartig funktionieren, vorausgesetzt, die Person hat weiterhin Zugriff auf das Google Mail-Konto und nicht auf ein einfaches Archiv der Nachrichten. Gute Lösung!
Brad

Ja, einverstanden, aber es gibt eine Einschränkung bei der Verwendung von Kontakten über Extraktions-Tools. Möglicherweise haben Sie Ihre Kontakte durcheinander gebracht. Viele von uns tun dies, wenn wir aufräumen, wie es das OP vorschlägt, wenn seine Nachrichten archiviert werden. Sie sind sich jetzt nicht sicher, ob Sie alle Ihre E-Mail-Adressen haben? Ich war in dieser Situation und nachdem ich alle Antworten hier angeschaut hatte, war die Starbanana ganz einfach die eleganteste und vertrauenswürdigste (sie verwendet zweistufige Authentifizierungs- und app-spezifische Passwörter) und eine direkte Verbindung von meinem PC zu Google Mail, so dass niemand in der Mitte zuhört .
Tino Mclaren

2
Dies gilt nur, wenn Sie diese Einstellung aktiviert haben. Während es der Standard ist, können Sie es leicht ausschalten. Siehe:
Ale

28

Hier setzt die Leistungsfähigkeit von Google Apps Script an. Wenn Sie das folgende Skript in eine neue Google-Tabelle einfügen (Tools, Skript-Editor, auf das Fehlersymbol klicken, um das Skript zu authentifizieren), werden automatisch neue Blätter basierend auf der Nummer erstellt der Etiketten vorhanden. Danach werden die E-Mail-Adressen hinzugefügt.

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);
}

Verwenden Sie die SPLITFunktion, um Namen zu extrahieren und Duplikate zu finden. Systemordner werden wie INBOXoder ignoriert All Items.

Hinweis: Die Ausführung des Skripts kann einige Zeit in Anspruch nehmen, was natürlich von der Anzahl der E-Mails abhängt


@ MG1 hat das Skript überprüft und es schlägt bei leeren Beschriftungen fehl. Der Code wurde überarbeitet, sodass eine Meldung mit den leeren Bezeichnungen angezeigt wird.
Jacob Jan Tuinstra

7

Update 2017

Starbanana hat seinen Namen in deep-email-extractor geändert und es sieht auch so aus, als ob die App-Benutzeroberfläche überarbeitet wurde und auf mehreren Konten funktioniert (nachdem ich mich gerade bei meiner App angemeldet habe).

Ursprüngliche Antwort

Wenn Sie eine schnelle Desktop-App (kein Skript) benötigen, sollten Sie dies berücksichtigen.

Ich habe ziemlich viel nach einer App gesucht, die auf Label-Ebene funktioniert, und Gmail Email Exporter von deep-email-extractor gefunden .

Es ist eine kostenpflichtige App (ich habe nichts damit zu tun), aber sie ist günstig und Sie können E-Mail-Adressen von bestimmten Labels oder von Ihrem gesamten Google Mail-Konto exportieren.

Fügen Sie in Ihrem Fall alle Ihre empfangenen E-Mails mithilfe eines Filters in ein Etikett ein und exportieren Sie sie mithilfe der oben beschriebenen Methode in eine CSV-Datei.


1
Eine billigere Alternative für Mac-Benutzer ist Email Contacts Extractor ( itunes.apple.com/us/app/email-contacts-extractor/… ). Vollständige Offenlegung: Ich habe es selbst entwickelt, weil ich der Ansicht war, dass andere Angebote zu teuer waren oder einen Online-Zugang zu meiner E-Mail erforderten.
hpique

Es wäre fantastisch, wenn Sie eine Version für 20 Adressen oder weniger erstellen könnten, so wie sie es tun.
Dan Rosenstark

starbanana.com extrahiert nun auch E-Mails aus dem Körper, ich habe es gerade ausprobiert und das Multithreading auch (macht 15 Etiketten gleichzeitig) unglaublich schnell gut beeindruckt.
Tino Mclaren

6

Basierend auf der Antwort von @ jacob-jan-tuinstra. Einige geringfügige Änderungen vorgenommen, um meinen Bedürfnissen zu entsprechen, vielleicht finden es andere nützlich.

Verwendet die Suche, teilt sich nicht in Labels auf und führt auch das Chunking für große Posteingänge durch.

Der Teil mit der Aufschrift "IHRE MAIL-SUCHABFRAGE GEHT HIER" kann mit jeder Abfrage gefüllt werden, die Sie in Ihrem Posteingang verwenden würden.

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);
}

Ihr scrpit funktioniert perfekt für mich, danke! können Sie die Option zum Abrufen von E-Mail-Adressen aus dem Hauptteil der E-Mail hinzufügen, sehr geschätzt. Vielen Dank.

5

Die folgende App ist kostenlos und funktioniert wunderbar!

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


Ein weiteres großartiges Dienstprogramm. Aber ich muss es erst noch versuchen.
Moiz Tankiwala

1
Ich würde NIEMALS einer "Online-App" vertrauen, denn so viele Betrügereien stehlen un / pw und all Ihre E-Mail-Adressen. Gehen Sie mit Installierte App - HTTPS-Verbindung.
Tino Mclaren

Ich stimme dir zu, dass du vorsichtig sein musst, aber der Typ hinter Labnol ist ein guter Typ, der eine Menge wirklich hilfreicher Dinge veröffentlicht hat. Wenn Sie ihm nicht vertrauen, aber ein bisschen technisch sind, können Sie immer den Quellcode, auf den er aus diesem Artikel verweist,
holen

5

Verwirrt / Nicht technisch / Keine Ahnung, was zu tun ist?

Versuchen Sie es Schritt für Schritt und danke an https://webapps.stackexchange.com/a/47930/6329

Schritt 1. drive.google.com

Schritt 2. Neue Tabelle

Schritt 3. Tools> Skripteditor

Schritt 4. Schließen Sie das Einführungsfenster mit der Schaltfläche Schließen

Schritt 5. Fügen Sie den Code ein

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);
} 

Schritt 6. Positionieren Sie den Cursor in der ersten Zeile auf das Wort "getEmails"

Schritt 7. Klicken Sie oben in der Menüleiste auf die Schaltfläche "Dreieck abspielen"

Schritt 8. Sie werden aufgefordert, sich zu authentifizieren

Schritt 9. Klicken Sie erneut auf die Wiedergabetaste, falls sie noch nicht ausgeführt wurde

Schritt 10. Überprüfen Sie Ihr ursprüngliches Arbeitsblatt und es enthält die E-Mails.


4
  1. Navigieren Sie zur Liste. Aktivieren Sie das Dropdown-Kontrollkästchen und wählen Sie alle aus.
  2. [Oben erhalten Sie eine Hyperlink-Option, mit der Sie alle Konversationen in Ihrer Liste auswählen können. Klicken Sie darauf.] Update: Dieser Schritt funktioniert nicht, Sie können immer nur 25 gleichzeitig ausführen, Mist!
  3. Gehen Sie dann in die Dropdown-Liste Mehr und wählen Sie solche Filternachrichten.
  4. Im Filterdialog wird das Textfeld Von hervorgehoben. Dies sind alles von Adressen.
  5. Kopiere es.
  6. Fügen Sie es in einen HTML-Editor wie Notepad ++ oder Visual Studio ein.
  7. Jetzt müssen Sie nur noch suchen und das Wort ODER ersetzen, durch ;oder ersetzen ,.
  8. Kopieren Sie die Liste erneut und fügen Sie sie in Ihre Nachricht ein.

Besser einfach die Antwort geben. Keine Notwendigkeit für die Geschichte dahinter. :-)
Yosi Mor

4

Der einzige Weg dies zu tun ist

  1. Alle als .txt exportieren (siehe: Gmail-Nachrichten in Text- oder HTML-Dateien exportieren )
  2. Führen Sie eine Schleife durch und suchen Sie in einer separaten Datenbank nach "Von:" - Zeilen.

Hinweis: Wenn Sie imapsize (kostenlos) für Schritt 1 verwenden, speichern Sie die Sicherungen als "% FROM - Der Absender der E-Mail" und Sie haben sie in Ihrem Verzeichnis gut sichtbar.


Ich hatte Angst davor. Trotzdem danke!
Brad

1

Ich habe eine Möglichkeit gefunden, dies für Mac-Benutzer zu tun, die Mac Mail und das Adressbuch verwenden, ohne zusätzliche Software herunterladen zu müssen. Dies funktioniert mit Mac Mail 4.6 und Adressbuch 5.0.3. Ich bin nicht sicher, ob es für andere Verse funktioniert oder nicht. Dies funktioniert möglicherweise ähnlich für andere IMAP-E-Mail-Programme wie Thunderbird, aber ich kann nicht dafür bürgen.

Hier sind die Schritte:

  1. Richten Sie Ihr Google Mail-Konto in Mac Mail ein. Stellen Sie sicher, dass der Posteingangsserver "imap.gmail.com" ist. Sie finden ihn in der Symbolleiste unter "Mail"> "Einstellungen"> "Konten".
  2. Erstellen Sie in Google Mail eine Bezeichnung für die E-Mails, für die Sie E-Mail-Adressen extrahieren möchten.
  3. Beschriften Sie in Google Mail alle gewünschten E-Mails mit dem obigen Label.
  4. Gehen Sie in Google Mail zu Einstellungen> Labels und aktivieren Sie das Kontrollkästchen für das neu erstellte Label mit der Aufschrift "In IMAP anzeigen".
  5. Starten Sie Mac Mail neu, damit das neue Google Mail-Label synchronisiert wird.
  6. Öffnen Sie das Adressbuch. Wenn Sie das Adressbuch für Ihre Kontakte verwenden, müssen Sie Ihre Kontakte sichern, da Sie alle Kontakte im Adressbuch löschen müssen. Ich glaube, Sie können dies mit Datei> Exportieren> Adressbucharchiv tun. Ich verwende kein anderes Adressbuch als zum Exportieren von Google Mail-E-Mails. Daher kann ich hier keine guten Ratschläge geben. Das Löschen von Adressbuchkontakten erfolgt auf eigenes Risiko.
  7. Löschen Sie im Adressbuch alle Ihre Kontakte. Sie sollten in der Lage sein, dies zu tun, indem Sie einen Kontakt auswählen, Befehlstaste + a drücken und die Entf-Taste drücken.
  8. Suchen Sie in Mac Mail Ihren IMAP-Ordner. Auf der linken Seite des Fensters sollte sich eine Spalte mit all Ihren Postfächern befinden. Wenn Sie nicht zur oberen Symbolleiste wechseln, wählen Sie Ansicht> Postfächer anzeigen oder drücken Sie Befehlstaste + Umschalttaste + M. Der IMAP-Ordner befindet sich unten in der Spalte unter "Erinnerungen", "RSS", "Auf meinem Mac" usw. Der Name Ihres zuvor eingerichteten Google Mail-Kontos sollte links mit einem Dropdown-Pfeil angezeigt werden.
  9. Klicken Sie in Mac Mail auf den Dropdown-Pfeil neben Ihrer Mailbox. Daraufhin wird eine Liste mit Ordnern angezeigt und das in Google Mail erstellte Label sollte als Ordner angezeigt werden. Wählen Sie diesen Ordner aus, indem Sie darauf klicken.
  10. Wählen Sie in Mac Mail im Fenster Nachrichten, in dem jetzt alle Ihre E-Mails für Ihr Google Mail-Label angezeigt werden sollen, alle E-Mails in der Liste aus. Gehen Sie zur oberen Symbolleiste, wählen Sie Nachrichten> Absender zum Adressbuch hinzufügen oder drücken Sie Shift+ Command+ Y. Alle Absender für Ihr Google Mail-Label sollten sich jetzt im Adressbuch befinden.
  11. Im Adressbuch können Sie jetzt Kontakte als vCards exportieren, um sie in einem beliebigen Programm zu verwenden, indem Sie in der Symbolleiste Datei> Exportieren> vCards exportieren auswählen. Sie können sogar wieder in Google Kontakte importieren. Wenn Sie eine CSV-Datei benötigen, müssen Sie die vCards leider in ein anderes Programm importieren (Google Contacts funktioniert) und erneut exportieren, da Sie CSV nicht aus Mac Mail exportieren können.

Hoffe das hilft! Es ist etwas umständlich, funktioniert aber für mich und ist ziemlich einfach, nachdem Sie es ein paar Mal gemacht haben.


0

MineMyMail ruft alle Ihre Nachrichten über IMAP ab und extrahiert dann die E-Mail-Adressen daraus.

Sie können auswählen, welche Ordner durchsucht werden sollen, indem Sie den Ordner / die Bezeichnung "Gesendete Mail" auswählen.


Ist MineMyMail vertrauenswürdig? Ich habe ihre Website besucht und Chrome hat mich gewarnt, dass das Zertifikat abgelaufen ist. Das Fehlen eines richtigen HTTPS-Zertifikats und die Aufforderung an die Nutzer, ihren Google Mail-Nutzernamen und ihr Passwort einzugeben, ist definitiv beängstigend. Ich habe den Verdacht, dass die Website die E-Mails möglicherweise extrahiert und für eigenes Spammen oder für den Verkauf an andere Spammer verwendet.
Moiz Tankiwala

0

IMAP Addresses Exporter ist eine Mac-App, die eine Verbindung zu einem IMAP-E-Mail-Konto herstellt und jede Absenderadresse auch aus zuvor festgelegten Ordnern / Labels extrahiert. Um ehrlich zu sein, muss ich betonen, dass es von meiner Firma entwickelt wurde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.