JavaScript
GoogleAppsScript
gmail
spreadsheet

この記事はGoogle Apps Scriptを実例交えて基礎からざっくり学ぶ Advent Calendar 2017 12日目の記事です。

本アドベントカレンダーは@rt_pの個人プロジェクトですが、筆者はAteam Brides Inc. Advent Calendar 2017にも参加しています。そちらでも出張版記事を書いているので、覗いていただけると嬉しいです。

はじめに

今回は簡易的なメルマガ配信システムを作ります。
メルマガで最も気をつけるべきことは、宛先は一通一通TOを設定する、もしくはBCCを設定することでしょうか。

TOや宛先に複数の送信先を設定すると他の受信者が見えてしまいます。稀に企業がメルマガの設定を失敗して情報漏洩のニュースになっていますね…気をつけましょう。

mail.png

メール配信リストを作る

まずはスプレッドシートを開き、下記のようなリストを作りましょう。
A列にメールアドレス、B列に相手の名前を入れます。

sheet.png

実在する可能性のあるメールアドレスは絶対に入力しないように!そのメールアドレスに持ち主が存在する場合迷惑が掛かってしまいます。
@example.comはサンプルとして使っていいフリードメインなので安心です。

受信の確認をする為、自身のメールアドレスを入れるといいでしょう。

スクリプトエディタを開き、以下コードに置き換えて実行します。
スクリプトエディタの開き方や承認が必要ですメッセージが出た際の対処法が分からない場合は
アドベントカレンダー1日目のHello, world!記事をご参照ください。

send_mail.gs
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var values = sheet.getDataRange().getValues();
  for (var i in values) {
    sendMail(values[i][0], values[i][1]);
  }
}

// メールを送る
function sendMail(mailto, name) {
  var subject = name + 'さんこんにちは';
  var body = name + "さん、お元気ですか?\r\n私は元気です。";
  GmailApp.sendEmail(mailto, subject, body); // メール送信
}

sendEmail(recipient, subject, body)

https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String)

なんとこのコードを実行するだけで、入力した3名にメールが配信できます。

mail.png

メールの送信を覚えたらできることが一気に広がります。
今まで紹介してきた定期実行の仕組みやAPIと組み合わせて、あらゆる指標の定期レポートが作れますね。

おわりに

今回は短いですが以上です。

ちなみにGmailAppはメールの送信だけでなく、受信ボックスの中身を取り出して処理もできます。
今回のアドベントカレンダーでは特に触れませんが、興味があれば調べてみてください。

明日

【Google Apps Script】その13 スプレッドシート上のグラフを画像として保存やメール送信する
となります。
スプレッドシートで作成したグラフを画像としてGoogleドライブに保存したり、メールで配信する方法を紹介します。

前の記事
【Google Apps Script】その11 Webサイトのスクリーンショットを定期的にGoogle Driveに保存する
次の記事
【Google Apps Script】その13 スプレッドシート上のグラフを画像として保存やメール送信する