webプロダクトいんふぉ

webの気になった情報を発信中!!

Google App Scriptを使用してGmail情報をスプレッドシートに書き出す

ebookなどのダウンロード情報(お名前・メールアドレス)からメルマガ用のリストを自動で作りたくて、Gmail情報をスプレッドシートに書き出してみました。

GmailGoogleスプレッドシートを連携させたかったので、今回は手軽に実装できるGoogle App Script(GAS)を使用しました。

Googleスプレッドシートを作成します

作成後、メニューバーの「ツール > スクリプトエディタ」をクリックし、GASを書くためのエディタを起動します。

f:id:front-end-engineer:20190111211308p:plain

今回は、下記のようなメールの中から「お名前」と「メールアドレス」を取り出します。

f:id:front-end-engineer:20190111212459p:plain

次に取り出すための、コードを書いて行きます。

f:id:front-end-engineer:20190111211943p:plain

function searchContactMail() {
  
  /* Gmailから特定条件のスレッドを検索しメールを取り出す */
  var strTerms = 'from:"example.com"'; //メール検索条件
  var numMailMax = 20000; //取得するメール総数  
  var numMail = 500; //1度に取得するメール数
  var myThreads; //条件にマッチしたスレッドを取得、最大500通と決まっている
  var myMsgs; //スレッドからメールを取得する →二次元配列で格納
  var valMsgs;
 
  var i = SpreadsheetApp.getActiveSheet().getLastRow()-1;
  var wrong_email = 0;
  
  if(i<numMailMax) {  
    valMsgs = [];
    myThreads = GmailApp.search(strTerms, i, numMail); //条件にマッチしたスレッドを取得、最大500通と決まっている
    myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する →二次元配列で格納
    /* 各メールから日時、送信元、件名、内容を取り出す*/
    for(var j = 0;j < myMsgs.length;j++){
      var Body = myMsgs[j][0].getPlainBody(); 
      var name = Body.split('お名前:')[1].split('\n')[0]
      var email = Body.split('メールアドレス:')[1].split('\n')[0]
      
      if(myMsgs.length>0){
        SpreadsheetApp.getActiveSheet().getRange(j + 2, 1).setValue(name); //シートに貼り付け
        SpreadsheetApp.getActiveSheet().getRange(j + 2, 2).setValue(email);
      } 
    }
  }
}

コードの中で重要になってくるのが、どのメールを対象にするかという var strTerms = 'from:"example.com"'; //メール検索条件 の部分になります。 今回は送信者を限定して取得していますが、今回のケースでは、 var strTerms = 'subject:"ebookダウンロード"'; //メール検索条件 として件名を元にすることも可能です。

それぞれのコードに対してコメントを残してあるので、参考にしてみてください。

最後にここまで出来上がったら、コードを「command + s」windowsの方は「Ctrl + s」で保存し、メニューバーの下にある再生ボタンを押してください。 コードにエラーがでなかれば、実行中というアラートが表示され実行が終われば自動的に消えます。

実行が完了した画面が下記になります。 一行目の目次は自分で理解しやすいようにつけたので、ここに関してはお好みで大丈夫です。

f:id:front-end-engineer:20190111213427p:plain

この情報を元にメルマガツールを使用してメルマガ配信を行えば、簡単にメールマーケティングができるようになります。

メルマガツールとしては、個人的にはメール配信・メルマガ配信(月額1800円~)|Benchmark Emailが使いやすいと思っています。