どーも!marusukeです!
Google Apps Scriptでスプレッドシートのメールアドレス一覧を上から順にメール送信する処理を作成します!
機能の要件
今回の機能は以下のような機能を持っているものとします!
- スプレッドシートの「一覧」シートを処理の対象シートとする
- 2行目から処理を実行する
- 「一覧」シートのカラムは、以下の5つとする
- 名前
- 送信可否
- メールアドレス
- メッセージ
- 送信状況
- 送信する条件は以下とする
- 「送信可否カラムに「○」が入っていること」かつ、「送信状況カラムが”送信済み”でないこと」である行のみ送信する
- メールの件名は「自動メール: 〇〇さんへ」とする
- メール本文は、メッセージカラムの内容とする
- 送信完了したら、送信状況カラムに「送信済み」を入力する
というような要件で作ります!
ちなみに一覧シートは以下のような見た目になります
コード
Google Apps Scriptのコードは以下です!
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("一覧");
var data = sheet.getDataRange().getValues();
// 最初の行はヘッダー行なので、2行目から処理を開始する
for (var i = 1; i < data.length; i++) {
var row = data[i];
var name = row[0];
var canSend = row[1];
var emailAddress = row[2];
var message = row[3];
var sent = row[4];
// 送信可否が○で、かつ送信済みでない場合にメールを送信
if (canSend === '○' && sent !== '送信済み') {
var subject = '自動メール: ' + name + 'さんへ';
var body = message;
MailApp.sendEmail(emailAddress, subject, body);
// 送信済みマークを付ける
sheet.getRange(i + 1, 5).setValue('送信済み');
}
}
}
補足として、このコードを初めて実行するときは、認証が必要になります
こちらの記事に認証方法をまとめたので、お時間ありましたらご覧ください!
まとめ
このようなコードで、スプレッドシートの一覧のメールアドレスに自動的に送信することができます!また、メールの件名や本文内容は変更することができます!
以上です!
ここまで読んでいただきありがとうございました!
コメント