Skip to content

Instantly share code, notes, and snippets.

@arthuralvim
Created August 12, 2020 14:09
Show Gist options
  • Select an option

  • Save arthuralvim/bcc951ebd5fa4b7abf1c26d3e2b6ac8b to your computer and use it in GitHub Desktop.

Select an option

Save arthuralvim/bcc951ebd5fa4b7abf1c26d3e2b6ac8b to your computer and use it in GitHub Desktop.

Revisions

  1. arthuralvim created this gist Aug 12, 2020.
    78 changes: 78 additions & 0 deletions email-to-spreadsheet.gs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,78 @@
    function count_emails() {
    var max = 500;
    var offset = 0;
    var emails = [];

    while (true) {
    var threads = GmailApp.search("in:anywhere", offset, max);
    emails = searchThreads.concat(threads);

    if (threads.length < max) {
    Logger.log("Contagem:", emails.length);
    break;
    }

    offset += max;
    }
    }

    function extractDetails(message){
    var dateTime = message.getDate();
    var subjectText = message.getSubject();
    var senderDetails = message.getFrom();
    var bodyContents = message.getPlainBody();

    return {
    'data': dateTime,
    'assunto': subjectText,
    'de': senderDetails
    }

    }

    // after:2020/01/01
    // before:2020/01/01
    // category:principal
    // category:social
    // category:promoções
    // category:atualizações
    // category:fóruns
    // category:reservas
    // category:compras

    function main_loop() {
    var max = 500;
    var offset = 0;
    var emails = [];
    var all_threads = [];

    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = spreadsheet.getSheetByName('Página1');
    sheet.clear();
    sheet.appendRow(['Email Address']);

    while (true) {
    var threads = GmailApp.search("in:anywhere", offset, max);
    all_threads = all_threads.concat(threads);
    Logger.log("offset:", offset, " max:", max);

    if (threads.length < max) {

    for (var i = 0; i < all_threads.length; i++) {
    var messages = all_threads[i].getMessages();
    Logger.log("thread: ", i, " mensagens:", messages.length);
    for (var x = 0; x < messages.length; x++) {
    var sender = messages[x].getFrom();
    emails.push([sender]);
    }
    }

    emails.sort();
    sheet.getRange(sheet.getLastRow()+1, 1, emails.length,1).setValues(emails);
    Logger.log("Contagem:", emails.length);
    break;
    }

    offset += max;
    }
    }