
GASでメール一斉送信を自動化!テンプレートを使えば、あっという間に大量のメールも効率的に送れるぞ!
GASでテンプレートメール送信:基本設定
GAS(Google Apps Script)は、Google Workspaceの様々なサービスを連携させ、自動化するための強力なツールです。特に、Gmailと組み合わせることで、パーソナライズされたメールを一括送信するシステムを簡単に構築できます。この記事では、GASを使ってテンプレートメールを送信する方法を初心者向けに解説します。
まず、Googleスプレッドシートを用意します。このスプレッドシートには、送信先のメールアドレスや、テンプレートに差し込むための情報(名前、会社名など)を格納します。例えば、以下のような構成にします。
A列:メールアドレス、B列:名前、C列:会社名
次に、GASのエディタを開きます。Googleスプレッドシートから「ツール」→「スクリプトエディタ」を選択すると、新しいGASプロジェクトが開きます。
このエディタに、メール送信のスクリプトを記述していきます。
GASスクリプトの記述:メール送信処理
GASエディタに以下のコードを記述します。このコードは、スプレッドシートからデータを読み込み、テンプレートに基づいてメールを作成し、送信する処理を行います。
// スプレッドシートのIDを設定
const SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID';
// テンプレートのHTMLファイル名
const TEMPLATE_FILE_NAME = 'メールテンプレート';
function sendTemplateEmails() {
const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
const sheet = ss.getSheetByName('シート1'); // シート名を指定
const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
// ヘッダー行をスキップ
for (let i = 1; i < data.length; i++) {
const row = data[i];
const emailAddress = row[0]; // A列:メールアドレス
const name = row[1]; // B列:名前
const company = row[2]; // C列:会社名
// テンプレートHTMLを取得
const template = HtmlService.createTemplateFromFile(TEMPLATE_FILE_NAME);
// テンプレートに変数をセット
template.name = name;
template.company = company;
// HTMLメールを作成
const message = template.evaluate().getContent();
// メール送信オプション
const options = {
htmlBody: message,
subject: '【重要】〇〇のご案内' // 件名
};
// メールを送信
GmailApp.sendEmail(emailAddress, options.subject, '', options);
// 送信ログを記録(必要に応じて)
sheet.getRange(i + 1, 4).setValue('送信済み'); // D列に送信済みの記録
SpreadsheetApp.flush(); // スプレッドシートへの書き込みを即時反映
Utilities.sleep(1000); // 1秒待機
}
}
上記のコードをコピーし、YOUR_SPREADSHEET_ID
を実際のスプレッドシートIDに置き換えてください。スプレッドシートIDは、スプレッドシートのURLに含まれています。
次に、TEMPLATE_FILE_NAME
を実際に作成するHTMLテンプレートファイルの名前に置き換えます。
メール送信の処理の中で、GmailApp.sendEmailを利用してメールを送信しています。第1引数に送信先メールアドレス、第2引数にオプションを渡しています。オプションには、件名(subject)とHTML形式の本文(htmlBody)を指定します。
送信ログの記録は任意です。送信状況を管理したい場合に、スプレッドシートに記録しておくと便利です。
メールテンプレートの作成
次に、HTML形式のメールテンプレートを作成します。GASエディタで、「ファイル」→「新規作成」→「HTMLファイル」を選択し、ファイル名をメールテンプレート
とします。
作成したHTMLファイルに、以下のようなテンプレートを記述します。
<!DOCTYPE html>
<html>
<head>
<base target="_blank">
</head>
<body>
<p>拝啓</p>
<p><?= name ?>様</p>
<p>いつもお世話になっております。</p>
<p><?= company ?>の〇〇です。</p>
<p>この度は、〇〇のご案内をさせていただきます。</p>
<p>詳細は以下のリンクをご確認ください。</p>
<a href="https://www.example.com">詳細はこちら</a>
<p>敬具</p>
</body>
</html>
このテンプレートでは、<?= name ?>
と<?= company ?>
の部分が、スプレッドシートから読み込んだデータで置き換えられます。HTMLメールの基本的な構造に従い、必要な情報を記述してください。
メールテンプレートは、HTMLとCSSを使って自由にデザインできます。画像やロゴを追加したり、フォントや色を変更したりすることも可能です。
GASの実行と承認
GASのコードを記述し、メールテンプレートを作成したら、GASを実行します。GASエディタのツールバーにある「実行」ボタンをクリックし、sendTemplateEmails
関数を選択します。
初回実行時には、GASがGoogleアカウントへのアクセス許可を求めるダイアログが表示されます。必要な権限(Gmailの送信権限、スプレッドシートへのアクセス権限など)を許可してください。
承認が完了すると、GASが実行され、スプレッドシートのデータに基づいてメールが送信されます。送信状況は、スプレッドシートのD列(送信ログ)で確認できます。
エラー処理とデバッグ
GASの実行中にエラーが発生した場合は、GASエディタの「実行ログ」を確認し、エラーの原因を特定します。よくあるエラーとしては、スプレッドシートIDの間違い、シート名の誤り、メールアドレスの形式エラーなどがあります。
デバッグには、Logger.log()関数を使うと便利です。変数の値や処理の経過をログに出力することで、問題箇所を特定しやすくなります。
Logger.log(emailAddress); // メールアドレスをログに出力
Logger.log(name); // 名前をログに出力
エラー処理としては、try-catch文を使って例外をキャッチし、エラーメッセージをログに出力したり、処理を中断したりするなどの対策を講じることができます。
参考リンク
- Google Apps Script | Google Developers
- GmailApp | Apps Script | Google Developers
- HtmlService | Apps Script | Google Developers
まとめ
GASを使うことで、スプレッドシートのデータを活用し、パーソナライズされたメールを一括送信することができます。この記事では、基本的な設定から、スクリプトの記述、メールテンプレートの作成、GASの実行、エラー処理までを解説しました。GASを使いこなして、メール業務の効率化を実現しましょう。