Bana e-posta gönderen herkes için e-posta adreslerini içeren bir listeyi nasıl dışa aktarabilirim? Tüm mesajlarım arşivlendi.
Bana e-posta gönderen herkes için e-posta adreslerini içeren bir listeyi nasıl dışa aktarabilirim? Tüm mesajlarım arşivlendi.
Yanıtlar:
Bazı ekstra araçlar ima eden tüm karmaşık cevaplar beni oldukça şaşırttı! Aldığınız her e-posta adresi, Gmail’in Kişiler bölümündeki "Tüm Kişiler" e ("Kişilerim" yerine) eklendi. Bunu dışa aktarın ve bitirdiniz (veya sorunuza bir şey özledim).
Bu, Google Apps Komut Dosyasının gücünün devreye girdiği yerdir. Aşağıdaki betiği yeni bir Google E-Tabloya yapıştırırsanız (Araçlar, Komut Dosyası düzenleyici, komut dosyasını doğrulamak için hata simgesine basın), o zaman numaraya göre otomatik olarak yeni sayfalar oluşturulur. Mevcut etiketlerin. Bundan sonra e-posta adresleri eklenecek.
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
Kopyaları bulmak için adları ayıklamak için işlevi kullanın . Sistem klasörleri INBOX
veya gibi göz ardı edilir All Items
.
Not: komut dosyasının çalıştırılması biraz zaman alabilir; bu işlem elbette e-postaların sayısına bağlıdır.
2017 Güncellemesi
Starbanana, adını derin e-posta çıkarıcı olarak değiştirdi ve aynı zamanda Uygulama Arayüzünü yenilemiş gibi görünüyor ve birden fazla hesapta çalışmasını sağlamıştı (benim uygulamamda yeni oturum açmış olduğunu keşfettim), bunu yansıtacak şekilde aşağıdaki bağlantıyı değiştirdi.
Orijinal cevap
Hızlı bir masaüstü uygulamasına ihtiyacınız varsa (bir komut dosyası değil) bunu düşünün.
Etiket düzeyinde çalışan ve derin e-posta çıkarıcıdan Gmail E -posta Aktarıcı'yı bulan bir uygulama aradım .
Bu ücretli bir uygulama (onlarla hiçbir ilgim yok), ancak ucuz ve belirli etiketlerden veya tüm Gmail hesabınızdan e-posta adreslerini dışa aktarıyorsunuz.
Bu nedenle, e-postanızda aldığınız tüm e-postaları bir filtre kullanarak bir etikete koyun ve bir CSV dosyasına vermek için yukarıdakileri kullanın.
@ Jacob-jan-tuinstra'nın yanıtından alınmıştır. İhtiyaçlarıma uyacak küçük değişiklikler yaptım, belki de diğerleri bunu faydalı bulabilir.
Arama kullanır, etiketlere göre ayrılmaz ve aynı zamanda büyük gelen kutuları için ötme yapmaz.
'GMAIL'İNİZİ ARAMA SORUNU BURAYA GELİYOR' diyen bölüm gelen kutunuzda kullanacağınız herhangi bir sorgu ile doldurulabilir.
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);
}
Aşağıdaki uygulama ücretsiz ve güzel çalışıyor!
http://www.labnol.org/internet/extract-gmail-addresses/28037/
Aşağıdaki adımları adım adım deneyin ve https://webapps.stackexchange.com/a/47930/6329
adım 1 drive.google.com
adım 2. yeni e-tablo
adım 3. araçlar> script editörü
adim 4. kapatma düğmesi ile giriş ekranını kapatın
adım 5. koda yapıştırın
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);
}
adım 6. imlecinizi ilk satırda "getEmails" kelimesi üzerine getirin
adim 7. menü çubuğunda yukarıdaki oynatma üçgen düğmesine tıklayın
8. adım. Sizden doğrulamanızı ister, bunu yapın.
adim 9. daha önce yayınlanmadıysa play butonuna tekrar tıklayın
adim 10. orijinal e-tablonuzu kontrol edin, e-postalarınızı alacak.
;
ya ,
.Bunu yapmanın tek yolu
Not: 1. adım için imapsize (free) kullanıyorsanız, yedekleri "% FROM - e-postanın göndereni" olarak kaydedin ve dizini açık bir şekilde görünmesini sağlayın.
Ekstra yazılım indirmeye gerek kalmadan Mac kullanıcıları ve adres defterlerini kullanarak Mac kullanıcıları için bunu yapmanın bir yolunu buldum. Bu Mac Mail 4.6 ve Adres Defteri 5.0.3 ile çalışır. Diğer vers için işe yarayıp yaramadığından emin değil. Bu, Thunderbird gibi diğer IMAP E-posta programları için benzer şekilde çalışabilir, ancak buna kefil olamıyorum.
İşte adımlar:
Bu yardımcı olur umarım! Biraz hantal, ama benim için çalışıyor ve birkaç kez yaptıktan sonra oldukça kolay.
MineMyMail, tüm mesajlarınızı IMAP üzerinden alır ve ardından e-posta adreslerini çıkarır.
"Gönderilmiş Postalar" klasörünü / etiketini seçerek hangi klasörleri arayacağını seçebilirsiniz.
IMAP Adresleri Aktarıcı , herhangi bir IMAP e-posta hesabına bağlanan ve her gönderenin adresini, daha önce belirlediğiniz klasörlerden / etiketlerden ayıklayan bir Mac uygulamasıdır. Adil olmak gerekirse, şirketimin geliştirdiğini vurgulamak zorundayım.