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

2019-02-18

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

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

Googleスプレッドシートは、Googleが作成したものなので、他のGoogleサービスとの連携が得意です。今回は、Googleのプログラム機能(Google Apps Script)を使って、Gmailの最も簡単な送信について紹介します。eBayでは、購入してくれたお客様のメールアドレスを取得することができます。このメールアドレスを活用すれば、購入してくれたお客様にアフターサービス、個別のオファーを提案するなどが可能となります。(注:eBayでの取引は、eBayのメッセージ機能で行うルールです。あくまでeBayでの取引が終了したお客様に対してのアフタ...

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

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

ポイント 使用する関数

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

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

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

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

ポイント ポイント

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

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

詳細はこちら

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

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

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

当ラボでは、誰もが無料で使うことができるGoogleスプレッドシートを使って様々なサイトから必要な情報の取得を仕組み化したツールを提供しています。今回は、Googleスプレッドシートでプログラム(スクリプト)を記載して実行するための流れを紹介します。 スクリプト作成の流れスクリプト作成から実行までの流れは次の通りです。(1)スクリプトエディタを開く(2)スクリプトの記述・保存(3)スクリプトの選択・実行(4)実行ボタンの作成 スクリプトエディタを開くスクリプトを作成したいスプレッドシートを開き、そこからスクリプトエデ...

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.