準備するスプレッドシート
シート:LISTのE列の値が”1″の人に対してメールを送信します。
メールのテンプレートはシート:TEMPLATEにあり、文面の{NAME}をA列の氏名に、F列を{PLACE}に置き換えて送信します。
TeamAの人にはTeamAより、TeamBの人にはTeamBよりの文面を送信します。
GAS
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var listSheet = ss.getSheetByName("LIST");
var templateSheet = ss.getSheetByName("TEMPLATE");
var dataRange = listSheet.getDataRange();
var dataValues = dataRange.getValues();
// シート「TEMPLATE」からテンプレート文、件名、送信元の名前、メールアドレス、返信先メールアドレス、CC、Bccを取得
var templateA = templateSheet.getRange("A9").getValue();
var templateB = templateSheet.getRange("B9").getValue();
var subject = templateSheet.getRange("B1").getValue();
var senderName = templateSheet.getRange("B2").getValue();
var fromEmail = templateSheet.getRange("B3").getValue();
var replyTo = templateSheet.getRange("B4").getValue();
var cc = templateSheet.getRange("B5").getValue();
var bcc = templateSheet.getRange("B6").getValue();
for (var i = 1; i < dataValues.length; i++) { // ヘッダー行をスキップ
var memberID = dataValues[i][0];
var memberName = dataValues[i][1];
var mailAddress = dataValues[i][2];
var group = dataValues[i][3];
var check = dataValues[i][4];
var place = dataValues[i][5]; // 新しい「PLACE」列
if (check == 1) {
var template = (group == "TeamA") ? templateA : templateB;
var message = template.replace("{Name}", memberName).replace("{PLACE}", place);
// メール送信
MailApp.sendEmail({
to: mailAddress,
cc: cc,
bcc: bcc,
replyTo: replyTo,
subject: subject,
body: message,
name: senderName,
from: fromEmail
});
}
}
}