Googleスプレッドシート上でGmailの受信データを取得

2019-02-18

Googleスプレッドシートは、Googleが作成したものなので、他のGoogleサービスとの連携が得意です。

前回はGoogleのプログラム機能(Google Apps Script)を使って、Gmail送信方法について紹介しましたが、今回は、Googleスプレッドシート上でGmailの受信データを取得する方法について紹介します。

Google Apps Scriptでメール送付:お客様のメールアドレスを有効活用
Googleスプレッドシートは、Googleが作成したものなので、他のGoogleサービスとの連携が得意です。今回は、Googleのプログラム機能(Google Apps Script)を使って、Gma...

日々、たくさんのメールを受ける中で、大切なメールを見落としたり、返信ができていなかったということは無いでしょうか?

この機能を使えば、大切なメールの受信をスプレッドシートでリスト化し、処理状況を把握することが可能となります。

ポイント 使用する関数

使用する関数は、
「GmailApp.search」「GmailApp.getMessagesForThreads」
です。

「GmailApp.search」は、Gmail内のメールを検索し、条件に一致するデータを取得する関数です。
・検索条件(メールの検索条件)
・取得開始位置(何件目から)
・取得件数(何個:最大500件)
という条件を入力して使用します。

「GmailApp.getMessagesForThreads」は、メールのメッセージの各種データを呼び出しやすいように配列化する関数です。
・件名(タイトル)
・受信日時
・送信元
・送信先
・本文

などが、格納されています。

ポイント ポイント

ここで重要なのが検索条件です。関数で抽出できるメールの数には上限があります。検索条件で抽出するメールの数をできるだけ絞る必要があります。

検索条件には、「件名」「送信元」「受信アドレス」「期間」などがあります。これらの条件を「And/Or/Not」を使って複数個、組み合わせて抽出します。

詳細はこちら

ポイント プログラム(スクリプト)

では、実際の簡単なスクリプトの例を紹介します。スクリプトエディタを開いて、こちらを入力します。

スクリプトエディタの開き方はこちら

Googleスプレッドシートのスクリプト作成から実行までの基本的な流れ
当ラボでは、誰もが無料で使うことができるGoogleスプレッドシートを使って様々なサイトから必要な情報の取得を仕組み化したツールを提供しています。今回は、Googleス...

function receive_Mail() {
 //シート名の設定(「シート名」を変更して下さい)
  var sheet= SpreadsheetApp.getActive().getSheetByName('シート名');
  // Gmailから検索条件に一致するメールを取得 
  var strTerms =  'category:primary';
  
  var myThreads = GmailApp.search(strTerms, 0, 5); //条件にマッチしたスレッドを取得
  var myMsgs = GmailApp.getMessagesForThreads(myThreads); //配列に格納

  var valMsgs = [];
  var matomeArray = []; 
  // 各メールから日時、送信元、件名、本文の最初を取得
  for(var i = 0;i < myMsgs.length;i++){
 
    valMsgs[i] = [];
    valMsgs[i][0] = myMsgs[i][0].getDate();
    valMsgs[i][1] = myMsgs[i][0].getFrom();
    valMsgs[i][2] = myMsgs[i][0].getSubject();
    valMsgs[i][3] = "'"+myMsgs[i][0].getPlainBody().slice(0,50);
    
    matomeArray.push([valMsgs[i][0],valMsgs[i][1],valMsgs[i][2],valMsgs[i][3]])
  }

  /* スプレッドシートに出力 */
  if(myMsgs.length>0){
    
    sheet.getRange(2, 1, myMsgs.length, 4).setValues(matomeArray); //シートに貼り付け
    
  }
}

ポイントは、検索条件「’category:primary’」。これは、Gmailの「メイン」タブに入るメールを抽出するというもの。この例では、「メイン」タブに入っているメールの最新5件のデータを抽出し、日時、送信元、件名、本文の最初の50文字をシートに表示します。

ポイント まとめ

今回は、Googleスプレッドシート上でGmailの受信データを取得する方法について紹介しました。次回は、検索条件をうまく使ってGmailで特定の条件のメールだけをリスト化する方法を紹介します。

Copyright(c) 2016 e-Shikumi-Labo All Rights Reserved.