2012-08-08 19 views
11

Gmailの受信トレイや特定のラベルを監視するアプリスクリプトを作成することができますか?メールが届いたら、 Googleスプレッドシートアプリスクリプトを使用してGoogleスプレッドシートに条件を満たすメールをインポートする

は2の単純、簡単のGmail自体にフィルタを使用して行われ、特定のラベル、中に巻き込まれているすべての電子メールをインポートすることですので、私は、これは簡単にオプション

だろうと仮定したいです可能であれば、誰かが既にこれを行うアプリスクリプトに私をリンクさせることができますか、始めるには正しい方向に私を指摘してください。私はいくつかを持っていますが、アプリケーションスクリプトの経験が少ないので、私には簡単に行く:)

答えて

3

はい、あなたが概説したことを行うためのスクリプトを書くことは可能です。 Apps ScriptのGmailApp documentationを参照してください。

+1

回答ありがとうございます:)私は電子メールの実際の内容をラベルxでインポートするように案内できますか? ( –

+1

)GmailApp.getInboxThreads()を使用し、GmailThread.getLabels()を使用してラベルに属するすべてのメールを表示することができますが、Stackoverflowはあなたは固執されており、レディメイドコードではありません。したがって、あなたは自分で物事を試し、進歩が困難なときに助けを求めるべきです。 – Srik

9

これは小さなコードですが、最初の10個のスレッドにリクエストを制限し、短くして、ラベルを使用しました。テストする前に名前を変更するのを忘れないでください。 - )

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) 
    } 
関連する問題