Comment puis-je exporter une liste contenant des adresses électroniques pour tous ceux qui m'ont envoyé un courrier électronique? J'ai tous les messages archivés.
Je suis assez surpris par toutes les réponses compliquées impliquant des outils supplémentaires! Chaque email que vous recevez a son adresse ajoutée à "Tous les contacts" (par opposition à "Mes contacts") dans la partie Contacts de Gmail. Exportez celui-ci et vous avez terminé (ou j'ai oublié quelque chose dans votre question).
C’est là que la puissance de Google Apps Script entre en jeu. Si vous collez le script suivant dans une nouvelle feuille de calcul Google (Outils, Éditeur de script, appuyez sur l’icône du bug pour authentifier le script), de nouvelles feuilles seront automatiquement créées en fonction du numéro. des étiquettes présentes. Après cela, les adresses e-mail seront ajoutées.
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);
}
Utilisez la fonction SPLIT
pour extraire les noms afin de rechercher les doublons. Les dossiers système sont ignorés, comme INBOX
ou All Items
.
Remarque: l’exécution du script peut prendre un certain temps, ce qui dépend bien entendu du nombre de courriels
Mise à jour 2017
Starbanana a changé le nom de deep-email-extractor. Il semble également que l'interface utilisateur de l'application ait été réorganisée et rendue compatible avec plusieurs comptes (découverte après la connexion à mon application). Le lien ci-dessous a été modifié pour refléter cette modification.
Réponse originale
Si vous avez besoin d'une application de bureau rapide (pas d'un script), alors considérez ceci.
J'ai beaucoup cherché une application qui fonctionne au niveau de l'étiquette et j'ai trouvé Gmail Email Exporter auprès de deep-email-extractor .
C'est une application payante (je n'ai rien à voir avec elles) mais elle est économique et vous permet d'exporter des adresses e-mail à partir d'étiquettes spécifiques ou de tous vos comptes Gmail.
Donc, dans votre cas, mettez tous vos courriers électroniques reçus dans une étiquette à l'aide d'un filtre et utilisez ce qui précède pour exporter dans un fichier CSV.
L'application suivante est gratuite et fonctionne à merveille!
http://www.labnol.org/internet/extract-gmail-addresses/28037/
Basé sur la réponse de @ jacob-jan-tuinstra. Apporté quelques modifications mineures pour répondre à mes besoins, peut-être que d'autres le trouveraient utile.
Utilise la recherche, ne sépare pas les libellés et ne coupe pas les grandes boîtes de réception.
La partie qui dit 'VOTRE RECHERCHE DE RECHERCHE GMAIL SE TROUVE ICI' peut être remplie avec toute requête que vous utiliseriez dans votre boîte de réception.
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);
}
Essayez ce qui suit, étape par étape, et grâce à https://webapps.stackexchange.com/a/47930/6329
étape 1. drive.google.com
étape 2. nouvelle feuille de calcul
étape 3. outils> éditeur de script
étape 4. fermez l'introduction avec le bouton de fermeture
étape 5. coller dans le code
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);
}
étape 6. placez votre curseur dans le mot "getEmails" dans la première ligne
étape 7. cliquez sur le bouton triangle de lecture ci-dessus dans la barre de menus
étape 8. Il vous demande de vous authentifier, faites-le
étape 9. Cliquez à nouveau sur le bouton de lecture s'il n'a pas déjà été lancé.
étape 10. Vérifiez votre feuille de calcul d'origine et les e-mails y figureront.
La seule façon de faire est
Remarque: si vous utilisez imapsize (free) à l'étape 1, enregistrez les sauvegardes sous le nom "% FROM - L'émetteur de l'e-mail" et vous les trouverez bien en vue dans votre répertoire.
;
ou ,
.J'ai trouvé un moyen de le faire pour les utilisateurs Mac utilisant Mac Mail et le carnet d'adresses sans avoir à télécharger de logiciel supplémentaire. Cela fonctionne avec Mac Mail 4.6 et Address Book 5.0.3. Je ne sais pas si cela fonctionne pour d'autres vers ou non. Cela peut fonctionner de la même manière pour d’autres programmes de messagerie IMAP tels que Thunderbird, mais je ne peux pas en garantir.
Voici les étapes:
J'espère que cela t'aides! C'est un peu lourd, mais cela fonctionne pour moi et c'est assez facile après que vous le fassiez plusieurs fois.
MineMyMail récupère tous vos messages via IMAP, puis en extrait les adresses électroniques.
Vous pouvez choisir les dossiers qu'il recherche en sélectionnant le dossier/libellé "Envoyé".
Exportateur d’adresses IMAP est une application Mac qui se connecte à n’importe quel compte de messagerie IMAP et extrait chaque adresse d’expéditeur, ainsi que des dossiers/libellés définis précédemment. En toute justice, je dois souligner que ce logiciel a été développé par mon entreprise.