Google Apps ScriptとスプレッドシートでBcc一括送信ツールを作る
例えば申込者や契約者の方にアンケートや何かしらのメールを送りたい、でも開発とか工数かけられないという方向けにスプレッドシートとGoogle Apps Scriptの組み合わせだけで簡単にBccメールを一括で送る方法をご紹介します!
この記事は以下の方向けの内容です。
Script書けないし勉強するのめんどくさいからコピペで済ませたい
楽したい
DM営業したいんだけどBcc一括送信事故りそうだからツール探してる
スプレッドシートの設定
送信元となるスプレッドシートの任意のシートの1行目に以下のような内容を記載します。
内容の定義は以下。文言は同じである必要ありません。
to: 送信先メアド
title: 件名
description: 本文
送信予定時間: 送信予定時間(送信時間トリガーに利用する
送信完了時間: 送信完了時にタイムスタンプが押される
バウンス=1: メールアドレスが死んでるなどの理由によりバウンスした場合に1とかいれる。なんでもいい
重複チェッカー: 同じ人に2通送ると心象が悪いのでメアドを入力した時点で重複があるかチェックする用
重複チェッカー列にいれる関数 =countif(A:A,A2) を設定すると重複時に 2 と表示されます。条件付き書式でG列で2以上のときに色がつく設定にしておくと重複が即分かるので行ごと消せます。
バウンスと重複チェッカーは条件付き書式などいれとくと管理把握が楽です。
タイトルや本文は2行目以降に書く
1行目は固定になるので送信先のメアド、件名、本文は2行目以降に書いてください。本文の改行 option + enterは送信時に生きてますが、送信テストを行って確認してください。
自動送信スクリプトを設定する
スプレッドシート>ツール>スクリプトエディタを選択してください。
Bcc一括送信コピペ用スクリプト
function xxx() {
var sheet = SpreadsheetApp.getActiveSheet();// シートの取得
var startRows = 2; // 開始行数
var sheetData = sheet.getSheetValues(startRows, 1, sheet.getLastRow(), sheet.getLastColumn());
var dtLimit = new Date(); // 現在時刻を取得
var options = {"from": "xx <xx@xx>"};
// シートの各行ごとにデータを取り出す
sheetData.forEach(function(value, index) {
// 送信完了していない、かつ送信予定日時が現在時刻より前ならば、メールを送信する
if (!value[4] && (new Date(value[3])).getTime() < dtLimit.getTime()) {
GmailApp.sendEmail(value[0], value[1], value[2],options); // メールを送信する
sheet.getRange(startRows + index, 4 + 1).setValue(dtLimit); // 送信完了日時をシートに書く
}
});
}
function xxx()内のxxxは好きな名称に変更してください。
var options = {"from": "xx <xx@xx>"};内のxxは送信者の名前とメールアドレスを記載してください。
予約送信もできるんだけど若干挙動が不安定
挙動テスト
画像を参考にどうぞ。この仕組みを使えばメアドごとに別々のメールを一括でも送信可能です。
設定後、スプレッドシート>ツール>スクリプトエディタを選択してください。
スクリプトエディタ上の設定
スプレッドシート>ツール>スクリプトエディタで以下のように設定します。スクリプト名やプロジェクト名はご自由に。
スクリプト画面内の▶から実行します。
許可を求められるのでOKを進めていきます。
※まれに安全ではないページと表示されますが、左下の詳細>ページに進むを選択してください。
スクリプトが正しく走れば、以下の状態に戻ります。
スプレッドシートを確認
送信が完了するとE列に送信完了時間がスタンプされます。
受信も以下正しくできたことも記載します。
以上で全行程完了です。
受信したメールもBccになっています。
おわりに
Bccメールを送るために有料サービスなどを検討していた方や、ミスりたくない方むけに僕が普段実践している方法を書きました。
画像など使って記事自体は長く見えますが、スクリプトをコピペするだけでOKです。
是非使ってみてください。
※ただしGmailは1日の送信数上限2,000通と定められており、上限を越えた場合送信できなくなるのでお気をつけください!