スプレッドシートの名簿に差し込みメールを一斉送信するGAS | GASおじさんのブログ
GASの基本

スプレッドシートの名簿に差し込みメールを一斉送信するGAS

差し込みメール GASの基本

みなさんこんにちは!GASおじさんです。

今回は以下のようなスプレッドシートの名簿に、下記のメール本文を一斉送信するスクリプトを解説していきます。

A列に連番、B列に「お名前」、C列に「Email」、D列に「ご案内URL」という項目をそれぞれ用意しています。

このような名簿リストに、以下のメール本文を送信します。

<<お名前>>様

いつもお世話になっております。

受講URLをご案内いたします。
<<ご案内URL>>

どうぞよろしくお願いいたします。

上記メール文の<<お名前>>の部分が、スプレッドシートのB列に、<<ご案内URL>>の部分がスプレッドシートのD列に対応するような差し込みメールをGASで作ります。

なお、サンプル名簿は以下に共有しておきますので、必要な場合はコピーしてご利用ください。(スクリプトも添付されています。)

サンプル名簿
名簿リスト #,お名前,Email,ご案内URL 1,佐藤 太郎,waza368@heisei.be, 2,鈴木 花子,pyamu760@neko2.net, 3,山田 健太,tiripa@meruado.uk, 4,...

スプレッドシートの名簿に差し込みメールを一斉送信するGAS

スプレッドシートのメニューバーからApps Scriptを開いてください。

エディタを開いたら、以下のコードを貼り付けてください。

function sendEmailToList() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('名簿リスト');
  const lastRow = sheet.getLastRow();
  const values = sheet.getRange(2, 1, lastRow-1, 4).getValues();
  for(const value of values){
    const [number, name, email, url] = value;
    sendEmail(name, email, url);
  }
}

function sendEmail(name, email, url) {
  const subject = '受講URLのご案内';
  const body = 
`${name}様

いつもお世話になっております。

受講URLをご案内いたします。
${url}

どうぞよろしくお願いいたします。`;

  GmailApp.sendEmail(email, subject, body);
}

ファイルを保存して実行します。

実行完了後Gmailの送信済みメールを確認すると…

すべてのリストに差し込みメールが送信されました!

コード解説

それではコードについて解説していきます。

sendEmail関数

まずはsendEmail関数についてです。

function sendEmail(name, email, url) {
  const subject = '受講URLのご案内';
  const body = 
`${name}様

いつもお世話になっております。

受講URLをご案内いたします。
${url}

どうぞよろしくお願いいたします。`;

  GmailApp.sendEmail(email, subject, body);
}

こちらはその名の通り、ただメールを送るだけの関数ですね。

13行目のGmailApp.sendEmail(email, subject, body);という1行がメールを送るためのコードです。

第1引数のemailが宛先、第2引数のsubjectがメールの件名、第3引数のbodyがメールの本文ですね。

bodyを定義する際は、バッククォート(`)を利用することで、文字列の中で変数を扱うことができます。

変数を扱う際は、${変数} というふうに、ドルマークと波括弧で表現します。これによって本文へのデータの差し込みを実現します。

sendEmailToList関数

次にsendEmailToList関数です。

function sendEmailToList() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('名簿リスト');
  const lastRow = sheet.getLastRow();
  const values = sheet.getRange(2, 1, lastRow-1, 4).getValues();
  for(const value of values){
    const [number, name, email, url] = value;
    sendEmail(name, email, url);
  }
}

こちらはスプレッドシートから名簿リストの情報を取得して、for文で各リストに対してsendEmailを実行する、という関数ですね。

5行目の、

const values = sheet.getRange(2, 1, lastRow-1, 4).getValues();

は、2行1列目から、10行4列分のデータを取得しますよ、という意味です。

取得したvaluesに対してfor文を回します。

7行目の、

const [number, name, email, url] = value;

で各列のデータに対して変数名をつけています。

そしてsendEmail(name, email, url);でメールを送る、という内容ですね。

まとめ

以上、GASで差し込みメールを作る方法について解説しました。

スプレッドシートのフォーマットなどは現場によって異なってくると思いますので、適宜ご自身の環境にあわせてコードを書き換えて実装してみてください!

GASを勉強するならこちら!

▼オススメ書籍はこちら!

スポンサーリンク
GASおじさんをフォローする

コメント

タイトルとURLをコピーしました