rfist
5/17/2016 - 9:23 PM

Parse Gmail mails and export results to Google Doc

Parse Gmail mails and export results to Google Doc

   function getMessagesWithLabel() {
     var destArray = new Array();
      var labelName = 'card'; 
      var label = GmailApp.getUserLabelByName(labelName);
      var threads = label.getThreads();

      for(var n in threads){
            var msg = threads[n].getMessages();
            var destArrayRow = new Array();           
            threads[n].removeLabel(label);
              for(var m in msg){
                var text = msg[m].getBody();

                var result = text.match(/<p>(.*?)<\/p>/g).map(function(val){
                  return val.replace(/<\/?p>/g,'');
                });
                var phone = "000";
                var name = "John Doe";
                var email = "doe@microsoft.com";
                for(var field in result){
                  if (result[field].indexOf('Телефон') != -1)
                  {
                    phone = parseInt(result[field].replace(/[^0-9]/g,''));                    
                  }
                 if (result[field].indexOf('ФИО') != -1)
                  {
                    tempName = result[field].match(/<b>(.*?)<\/b>/g).map(function(val){
                      return val.replace(/<\/?b>/g,'');
                    });
                    name = tempName[0];                   
                  }   
                  if (result[field].indexOf('E-mail') != -1)
                  {
                    email = result[field];
                    email = email.substring(email.indexOf('">') + 2,email.indexOf('</a>'));                   
                  } 
       }
       destArrayRow.push(name);  
       destArrayRow.push(phone);   
       destArrayRow.push(email); 
       destArray.push(destArrayRow);           
            }
      }
    Logger.log(destArray);
    var ss = SpreadsheetApp.openById('1gc4YdfsCFwdoJUUnAoJ0ugNUDXzMieVGsQd9HSpukp8')
    // var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    // if(ss.getLastRow()==0){sh.getRange(1,1).setValue('getMessagesWithLabel() RESULTS' + destArray.length)};
    var range = sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length);
    range.setValues(destArray);
    SpreadsheetApp.flush();
    }