こんにちは。前回の記事ではGoogleフォームの簡単な活用方法について書かせていただきました。今回は前回の記事の少し応用で、Googleスプレッドシートを使った一括メール送信の方法です。
一括メール送信をするためには、Google Apps Script(GAS)というものを使っていきます。こちらはGoogleアカウントを持っている方ならだれでも無料に利用できる、Googleの機能となります。
GASのサンプルコードを載せておきますので、テンプレとして使ってください。
Google Apps Scriptとは何か?
Google Apps Script(GAS)は、Googleのクラウドベースのスクリプト言語です。
例えばGmail、スプレッドシート、ドキュメントなどと連携して、さまざまな自動化を実現するためのツールです。JavaScriptに似た構文を持ち、ブラウザ上で直接コードを書き、実行することができます。ユーザーの間で共有したり、特定のタイミングで自動実行するトリガーを設定することも可能です。
Googleスプレッドシート『拡張機能』の中にあるApp ScriptをクリックするとGASを書くことができる画面が表示されます。
Googleスプレッドシートを使って一括メール送信する方法
Googleスプレッドシートを使って一括メール送信するためには、GASのコードを書いて実行すればOK。
こちらは超簡単なのでプログラミングなどと無縁な方でも誰でも簡単に実装できます!
例で作ったこちらのスプレッドシートに沿ってメールを送信していきます。
- D列・送信したいメールアドレス
- F列・送信済みの記載
F列に『送信済み』という記載がない行のアドレス宛(D列のアドレス宛)にメールを送っていきます。
Google Apps Script(GAS)の画面を開く手順
Googleスプレッドシート『拡張機能』の中にあるApp ScriptをクリックするとGASを書くことができる画面が表示されます。
Googleスプレッドシートを使って一括メール送信するためのテンプレート
Googleスプレッドシートを使って一括メール送信するためのテンプレートコードです。
こちらのテンプレでは以下のことを実行します。
- F列に『送信済み』という記載がない行のアドレス宛(D列のアドレス宛)にメールを送信する
- メール本文は指定したGoogleドキュメントから引っ張ってくる
- 送信後、F列に『送信済み』と入力
GMAILの送信機能を使うため、送信元のアドレスはGMAILとなります。
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("フォームの回答 1");
var data = sheet.getDataRange().getValues(); // 全データを取得
var docId = "1m9eYcfT7gEkRDVp4tpm2llsTDo3L_sPPzY7uz3EiZkA";
var doc = DocumentApp.openById(docId);
var message = doc.getBody().getText(); // Googleドキュメントの全テキストを取得
for (var i = 1; i < data.length; i++) { // 1行目はヘッダーなので i=1 からスタート
if (data[i][5] != "送信済み") { // F列が "送信済み" でない行だけを対象とする
var emailAddress = data[i][3]; // D列はEメールアドレス
var subject = "件名テスト"; // 件名を設定
MailApp.sendEmail(emailAddress, subject, message); // メールを送信
sheet.getRange(i + 1, 6).setValue("送信済み"); // F列)に "送信済み" を記入
SpreadsheetApp.flush(); // スプレッドシートに即時反映させる
}
}
}
コピペで利用できます。
ただしコピペする際は以下に注意してください。
①スプレッドシートのシート名が入ります。こちらが一致していないと動作しないため、必ずスプレッドシートで使っているシート名にしてください。
②メール本文は指定したGoogleドキュメントから引っ張ってくるために、GoogleのドキュメントIDを指定しています。
ドキュメントはスプレッドシートと同じようにGoogleドライブに作ることができます。ドキュメントのIDはグリーンで下線を引いた部分となります。
こちらをコード②の部分に貼ってください。
③④⑤は
- 『送信先アドレス』がスプレッドシートのどの列にあるか
- 『送信済み』というのはどこの列に入っている(もしくは挿入したいか)によって変わってきます
コードが貼り付け終わったら、あとは実行ボタンをクリック!
実行ボタンを押すと、承認画面が出てくるので以下手順で進んでいきます。
無事に処理が完了すると、メールがちゃんと届いていました。
最後に
今回はGoogleフォームの活用にも役立つ、Googleスプレッドシートを使って一括メール送信をご紹介しました。
参考にしていただけますと幸いです。