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.
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.
Antworten:
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).
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 SPLIT
Funktion, um Namen zu extrahieren und Duplikate zu finden. Systemordner werden wie INBOX
oder 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
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.
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);
}
Die folgende App ist kostenlos und funktioniert wunderbar!
http://www.labnol.org/internet/extract-gmail-addresses/28037/
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.
;
oder ersetzen ,
.Der einzige Weg dies zu tun ist
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 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:
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.
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.
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.