Google App Scriptを使用してGmail情報をスプレッドシートに書き出す
ebookなどのダウンロード情報(お名前・メールアドレス)からメルマガ用のリストを自動で作りたくて、Gmail情報をスプレッドシートに書き出してみました。
GmailとGoogleスプレッドシートを連携させたかったので、今回は手軽に実装できるGoogle App Script(GAS)を使用しました。
Googleスプレッドシートを作成します
作成後、メニューバーの「ツール > スクリプトエディタ」をクリックし、GASを書くためのエディタを起動します。
今回は、下記のようなメールの中から「お名前」と「メールアドレス」を取り出します。
次に取り出すための、コードを書いて行きます。
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」で保存し、メニューバーの下にある再生ボタンを押してください。 コードにエラーがでなかれば、実行中というアラートが表示され実行が終われば自動的に消えます。
実行が完了した画面が下記になります。 一行目の目次は自分で理解しやすいようにつけたので、ここに関してはお好みで大丈夫です。
この情報を元にメルマガツールを使用してメルマガ配信を行えば、簡単にメールマーケティングができるようになります。
メルマガツールとしては、個人的にはメール配信・メルマガ配信(月額1800円~)|Benchmark Emailが使いやすいと思っています。