はじめに
今回の記事ではGAS(Google Apps Script)を使用して、Gmailで一括送信を行うツールの作成方法をご紹介します。
イベントの主催者や企業のマーケティングなど、大勢の人にメールを送信したい場面ではメールが一括で送信が可能になると事務作業の時短につながります。
効率性:一括でのメール送信により、時間を大幅に節約できます。
パーソナライズ:受信者ごとにCC・BCC・文面などカスタマイズしたメールを送信可能です。
簡易性:プログラミング等特別な技術知識を必要とせず、基本的なGoogleサービスの知識だけで設定可能です。
費用効果:高価なメール送信ツールを購入する必要がなく、GASは無料で利用できます。
ツールの作成自体は15分ほどです。GASを触ったことがない人でも簡単に作成可能です。
動作イメージ
まずは簡単に今回の自動化処理の動作について説明します。
ツール自体は以下のようになっています。
- 氏名:送信先の氏名。メール本文にも使用される。
- メールアドレス:送信先のメールアドレス。
- CC:CCに入れるメールアドレス。
- BCC:BCCに入れるメールアドレス。
- 送信元表示名:受信者のメールボックスに表示される名前。
- 本文:メール件名・本文が記載してあるGoogleドキュメントのURL。
また、メール件名・本文となるGoogleドキュメントは以下のようになります。
これでプログラムを実行すると、以下のようなメールが受信者に届きます。
なお、送信元のメールアドレスはプログラムを実行しているアカウントのメールアドレスになります。
[SUBJECT][/SUBJECT]間がメールの件名となり、{{NAME}}となっているところが「氏名」の部分に置き換わっているのが分かります。
作成方法
今回の自動化処理の作成には以下を使用していきます。
- Google ドキュメント
- Googleスプレッドシート
- Google Apps Script
①Googleドキュメントにメールの件名と本文を記載
②スプレッドシートにメールアドレスなどのメール設定を記載
③手動でGAS(Google Apps Script)を実行することでメール送信、という流れになります。
スプレッドシートの操作
まず、スプレッドシートにアクセスします。
アクセスしたら、[新しいスプレッドシートを作成]>[空白]をクリックして新規のスプレッドシートを作成します。
画像のようにヘッダー名を任意でつけておきます。
- A1セル:氏名
- B1セル:メールアドレス
- C1セル:CC
- D1セル:BCC
- E1セル:送信元表示名
- F1セル:件名・本文URL
上部バーの[拡張機能]>[Apps Script]をクリックします。
GASの操作
GASが新規タブで開きます。
次に実際にコードを記載していきます。もともと記載してある以下コード
function myFunction() {
}
は削除して、新たに下記のコードをコピペしてください。
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getRange("A2:F").getValues();
for (var i = 0; i < data.length; i++) {
var name = data[i][0];
var email = data[i][1];
var cc = data[i][2];
var bcc = data[i][3];
var fromname = data[i][4];
var docUrl = data[i][5];
if (!docUrl) continue; // F列が空の場合、処理をスキップ
// GoogleドキュメントのIDをURLから取得
var docIdMatch = docUrl.match(/\/d\/([^/]+)/);
if (!docIdMatch) {
Logger.log('不正なGoogleドキュメントのURL: ' + docUrl);
continue;
}
var docId = docIdMatch[1];
var docText = DocumentApp.openById(docId).getBody().getText();
var subjectMatches = docText.match(/\[SUBJECT\]\s*(.*?)\s*\[\/SUBJECT\]/);
if (!subjectMatches) {
Logger.log('件名が見つかりませんでした。ドキュメントのURL: ' + docUrl);
continue;
}
var subject = subjectMatches[1].replace(/{{NAME}}/g, name);
var body = docText.replace(subjectMatches[0], '').trim().replace(/{{NAME}}/g, name);
if (email) {
var emailOptions = {
name: fromname,
cc: cc,
bcc: bcc
};
GmailApp.sendEmail(email, subject, body, emailOptions);
}
}
}
最後に「Ctrl + S」を押すか上部バーにある[プロジェクトを保存]をクリックするとスクリプトが保存されます。
GASの実行
Apps Script 上部バーの[▶実行]をクリックします。最初のスクリプトの実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、
[権限を確認]>[表示されているGoogleアカウント]>[詳細]>[無題のプロジェクト(安全ではないページ)に移動]>[許可]まで移動します。クリック後GASが実行されます。
Google ドキュメントの操作
続いて、メールの件名と本文を作成していきます。
Googleドキュメントにアクセスして、アクセスしたら、[新しいドキュメントを作成]>[空白]をクリックして新規のドキュメントを作成します。
[SUBJECT]
{{NAME}}様への重要なお知らせ
[/SUBJECT]
{{NAME}}様
テスト株式会社からのご連絡です。
この度は弊社イベントにご参加いただき、誠にありがとうございました。
{{NAME}}様に、参加特典として割引クーポンをお送りします。
詳細は、近日中に別途メールにてご案内いたします。
お問い合わせや不明点がございましたら、お気軽にサポートまでお知らせください。
今後ともよろしくお願い申し上げます。
テスト株式会社 担当より
件名と本文を作成したら、作成したドキュメントのアドレスバーのURLをコピーします。
スプレッドシートのF列の送信したい受信者の行にペーストします。
あとは他の「氏名」「メールアドレス」「CC・BCC(記入しなくても可)」「送信元表示名(空白であれば送信元メールアドレスになります)」を記入して、GASのタブの[▶実行]をクリックすることでメールを送信することができます。
【参考】ボタンの作成
スプレッドシート上にボタンを作成しておくことで、ボタンをクリックするだけで簡単にプログラムを実行することができます。
再度スプレッドシートのタブに戻ります。
Google スプレッドシートを開き、上部メニューの [挿入] > [図形描画] をクリックします。
好きな図形を選択し、スプレッドシート上の任意の位置に配置します。この図形がボタンとなります。
ボタン(図形)を右上の…をクリックし、[スクリプトを割り当て] をクリックします。
開いたダイアログボックスに 以下を入力し[確定]をクリックします。
sendEmails
以降は作成されたボタンをクリックすることで、簡単にプログラムを実行することができます。
注意点
GASおすすめ本
GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。