見出し画像

GASとスプレッドシートでGmailから任意のタイトルのメアドを一括取得するツールを作る

例えば昨日の自社のサービスに契約した方にアンケートやサンキューメールを送りたい、申込み件数を簡単に把握したい、というようなときに使えるGAS x スプレッドシートで作るメアド一括取得ツールの作り方をご紹介します!

この記事は以下の方向けの内容です。

- エンジニアに頼まずにあれこれしたい
- 開発とかしないでコピペでサクッとやりたい
- 各ファネルのユーザー情報をデータベースから拾って料理するのしんどい


今回の記事の内容と以下の記事の内容を組み合わせると、メールアドレスを一括取得してBccメールで一気にクロスマーケティングや追いメールなどができます。

スプレッドシートを用意する

画像1

まっさらなシートを用意してもらえればOKです。

自動送信スクリプトを設定する

画像2

スプレッドシート>ツール>スクリプトエディタを選択してください。

【コピペ用】メール一括取得用スクリプト

function xxx() {
 // 要空白のスプレッドシートで実行
 //////
 // change your condition
 const title_s = "xx"// 取得したいメールのタイトルを正しく記載する
 const date_s = "after:2020/3/1 before:2020/4/30" // beforeはその日を含まない。 format 2020/m/d
 const from_s = "xx@xx" // 送信元のメールアドレス
 const LIMIT_MAX_SEARCH = 1000 // 1日5万件の制限あり
 //////
 const title_s2 = "subject:(" + title_s + ")"
 const from_s2 = "from: " + from_s
 const search_condition = from_s2 + " " + date_s + " " + title_s2
 var sheet = SpreadsheetApp.getActiveSheet();
 var n = 0
 const GMAIL_MAX_GET = 500
 messages_out = [['to','title']]
 console.log("L17")
 do {
   // GmailApp.search(search_condition, start_position, max=500)
   var threads = GmailApp.search(search_condition, n, GMAIL_MAX_GET)
   console.log("L21")
   for (var t in threads) {
     // GAS has bug of using `const` and `let` inside for-loop. only `var` is acceptable.
     var thread = threads[t]
     var msgs = thread.getMessages()
     console.log("L26")
     for (var m in msgs) {
       var msg = msgs[m]
       var to_ = msg.getTo()
       var title_ = msg.getSubject()
       messages_out.push([to_, title_])
     }
   }
   n = n + GMAIL_MAX_GET
 } while (threads.length > 0 && n <= LIMIT_MAX_SEARCH)
 if (messages_out.length === 0) return;
 sheet.getRange('A1:B' + messages_out.length).setValues(messages_out)
}
​
- function xxx()のxxxは好きに書いてください。
- const title_s = "xx" > xxは取得したいメールのタイトルを正しく記載してください。
- const date_s = "after:2020/3/1 before:2020/4/30" >取得したい期間を設定してください。beforeはその日を含みません。
- const from_s = "xx@xx" > 送信元のメールアドレスを記載してください。

終わりに

変更する場所は3行のみという簡単スクリプトです。

僕は以下の記事の内容と組み合わせて毎日ユーザーアンケートを送ったり、今月の申込者数などを計測に使っています。


この記事が気に入ったらサポートをしてみませんか?