Google Apps Scriptはスプレッドシートやドキュメントだけでなく、Gmailも操作することができます。
そのため、スプレッドシートでメールアドレスをリスト化し、ドキュメントで本文のテンプレートを作成し、Gmailで一斉送信するという超便利機能がGoogle Apps Scriptだけで作成できてしまいます。
通常のGmailの一斉送信との違いは、メールアドレスを一件ずつ指定し、「△△株式会社〇〇様」のような宛先を本文に挿入できることです。
メルマガや営業に利用した場合にメールの開封率アップが期待できますね。
今回はメールの一斉送信の方法を紹介するために、ドキュメントは使わない簡易バージョンの作り方を紹介します。
使用例
スプレッドシートのB列に記入したメールアドレスを宛にメールを一斉送信します。
本文はスプレッドシートA列の名前に合わせて「〇〇さん、お元気ですか?」と変更されます。
※件名は一律で「ごあいさつ」としました。
※捨てメアドサービスであらかじめ送信先メールアドレスを準備しました。
コピペ用コード
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const mainSheet = spreadSheet.getSheetByName('リスト');
const list = mainSheet.getRange(2, 1, mainSheet.getLastRow() - 1, 2).getValues();
function send() {
for (i = 0; i < list.length; i++) {
const name = list[i][0];
const address = list[i][1];
const subject = 'ごあいさつ'; //件名
const body = `${name}さん、お元気ですか?`; //本文
MailApp.sendEmail(address, subject, body);
}
}
コードの解説
1~3行目
スプレッドシートの名前とメールアドレスを取得し、Listという名前の変数に2次元配列として格納します。
7~8行目
2次元配列であるListから、名前とメールアドレスをnameとaddressという変数に代入します。
[i]はスプレッドシート上のデータの行数(見出しを除く)を表します。
[0]はスプレッドシート上の1列目、[1]は2列目を表します。
※配列では0が1つ目のデータを表します。
例えば、
list[0][0]は常盤花音を、
list[2][1]はko711@goatmail.ukを表します。
9行目
変数名subjectにメールの件名を代入します。
ここを変更することで、メールの件名を自由に設定することができます。
10行目
変数名bodyにメールの本文を代入します。
ここを変更することで、メールの本文を自由に設定することができます。
また、${name}
の部分には7行目で設定した名前が代入されます。
13行目
メールを送る時のお決まりの記述です。
addressには8行目で代入したメールアドレスが、subjectには9行目で設定した件名が、bodyには11行目で設定した本文が使われています。
7~13行目までの処理をfor文で繰り返すことで、メールの一斉送信をすることができます。