📨
【GAS】SpreadSheetから一括メール送信
メルマガツールを使うまでもない規模のメール一括送信をしたいときに使えそうな GoogleAppScript を作りました。
あと文面が各々微妙に異なるなどメルマガツールでは要件的に実現しづらいケースにも活用できるかと思います。
肝心の GAS コード
function email() {
var response = Browser.msgBox(
"メールを送信します",
"送信してよいですか?",
Browser.Buttons.OK_CANCEL
);
if (response === "cancel") {
return;
}
const sheet = SpreadsheetApp.getActiveSheet();
const last_row = sheet.getLastRow();
for (let i = 2; i <= last_row; i++) {
if (sheet.getRange(i, 4).getValue() === "Done") {
continue;
}
Logger.log(sheet.getRange(i, 1).getValue());
let target = sheet.getRange(i, 1).getValue();
let subject = sheet.getRange(i, 2).getValue();
let body = sheet.getRange(i, 3).getValue();
let options = { from: "Sample <support@example.com>" };
GmailApp.sendEmail(target, subject, body, options);
sheet.getRange(i, 4).setValue("Done");
}
}
スプレッドシートのフォーマット
A 列:宛先メールアドレス, B 列:メールタイトル, C 列:メール文面, D 列:送信結果
というフォーマットでスプレッドシートを作成します。
スクリプトの作成
GoogleAppScript のエディタを開いて、上記のコードを入力します。
保存したら、先ほどのスプレッドシートに戻ります。
スクリプト実行ボタンの作成
挿入 > 図形描画 からボタンオブジェクトを作成します。
ボタンが作成できたら、ボタン選択時右上に表示される 3 連点をクリックして「スクリプトを割り当て」を選択します。
表示されるダイアログに、先ほど作成した GAS の関数名を入れます。
上記のコードをそのまま使う場合は、 email
と入れます。
ボタンをクリックしたら、メール送信実行!
実行が成功した行には、D 列に Done と入ります。
もし失敗があっても再実行すると、Done が入っていない行だけが実行されます。
注意点:メール送信元
メール送信元として使えるメールアドレスは、
GAS を実行する Google アカウントのメールアドレスまたはオーナー権限を持っている GoogleGroup のメールアドレスです。
Discussion