2012-08-08 4 views
11

Ich frage mich, ob es möglich wäre, ein Apps-Skript zu erstellen, das meinen Posteingang oder ein bestimmtes Label in Gmail überwacht, und wenn eine E-Mail empfangen wird google-TabelleImportieren Sie E-Mails, die Kriterien in Google Spreadsheet mit Hilfe von Apps Skript erfüllen

die einfachere der beiden wäre, alle E-Mails zu importieren, die in einem bestimmten Label gefangen werden, die sich leicht mit Hilfe von Filtern in gmail gemacht wird selbst, so würde ich das annehmen wäre die einfachere Option

Wenn es möglich ist, könnte mich jemand mit einem Apps-Skript verbinden, das dies bereits tut oder mir in die richtige Richtung weist, um loszulegen? Ich habe einige, wenn auch minimale Erfahrung mit Apps Skript so gehen Sie einfach auf mich :)

Antwort

3

Ja, ist es möglich, ein Skript zu schreiben, um das zu tun, was Sie skizziert haben. Weitere Informationen zu Methoden, die Sie verwenden können, finden Sie unter GmailApp documentation von Apps Script.

+1

Vielen Dank für die Antwort :) Könnte jemand mich durch den Import der tatsächlichen Inhalte der E-Mail in Label X führen, damit ich anfangen kann? Ich bin hoffnungslos, wenn es um dieses Zeug geht :( –

+1

Sie können GmailApp.getInboxThreads() verwenden und dann GmailThread.getLabels() verwenden, um alle E-Mails eines Labels zu sehen.Hieraus gesagt, Stackoverflow ist ein Forum für die Suche nach Antworten wenn Sie stecken fest und nicht für Readymade-Code, also sollten Sie die Dinge auf eigene Faust ausprobieren und um Hilfe bitten, wenn Sie Schwierigkeiten haben. – Srik

9

Hier ist ein kleiner Code zum Anfang, ich habe die Anfrage auf die ersten 10 Threads beschränkt, um es kurz zu machen und benutzte eine Bezeichnung, die ich hatte ... vergessen Sie nicht, seinen Namen zu ändern, bevor Sie es testen; -)

function getMessagesWithLabel() { 
    var destArray = new Array(); 
     var threads = GmailApp.getUserLabelByName('Facebook').getThreads(1,10); 

     for(var n in threads){ 
      var msg = threads[n].getMessages(); 
      var destArrayRow = new Array(); 
      destArrayRow.push('thread has '+threads[n].getMessageCount()+' messages'); 
       for(var m in msg){ 
         destArrayRow.push(msg[m].getSubject()); 
       } 
     destArray.push(destArrayRow);   
      } 
    Logger.log(destArray); 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sh = ss.getActiveSheet(); 
    if(ss.getLastRow()==0){sh.getRange(1,1).setValue('getMessagesWithLabel() RESULTS')}; 
    sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length).setValues(destArray) 
    }