このページの本文へ

パーソナライズ対応!Google Appsでメールマガジン配信システム (3/5)

2014年06月16日 11時00分更新

文●掌田津耶乃

  • この記事をはてなブックマークに追加
本文印刷

メールマガジン登録のスクリプト

 メールマガジン登録のフォーム画面に戻りましょう。フォームの編集画面から、「ツール」メニューの「スクリプトエディタ...」を選び、スクリプトエディタを開きます。上部のタイトルをクリックし、「メルマガ登録」と名前を入力します。

スクリプトエディタのタイトルをクリックしてダイアログを呼び出し、名前をつける

 リスト2のスクリプトをエディタに入力します。「☆メルマガ登録用スプレッドシートのID☆」には先ほど調べたスプレッドシートのID、「☆解除フォームのアドレス☆」には次回作成する解除用のフォームのアドレスを記入しておきます(今のところは、ダミーのテキストのままにします。次回、修正します)。

リスト2


function sendform(e) {
  var id = e.response.getId();
  var name = e.response.getItemResponses()[0].getResponse();
  var mail = e.response.getItemResponses()[1].getResponse();
  var spreadsheet = SpreadsheetApp.openById("☆メルマガ登録用スプレッドシートのID☆");
  var len = spreadsheet.getSheets().length;
  var sheet = spreadsheet.getSheets()[0];
  var row = sheet.getLastRow();
  sheet.getRange(row, 6).setValue(id);
  var body = name + "様¥n"
      + "メールマガジンにご登録いただきありがとうございました。¥n¥n"
      + "登録ID: " + id + "¥n¥n"
      + "※登録IDは、メールマガジン解除の際に必要となりますのでどこかに保管ください。¥b¥b"
      + "※メールマガジンの解除は以下から行えます。¥n"
      + "☆解除フォームのアドレス☆";
  MailApp.sendEmail(mail, "登録受け付けました", body);
}

送信レスポンスID保管とメール送信

 sendform関数では、「レスポンスID」を保管し、メールマガジン登録者へメールを送信します。レスポンスIDとは、フォームから送信された情報を管理するIDです。メールマガジンの登録を解除する際、このレスポンスIDとメールアドレスを照合し、本人であることを確認します。

 この関数では、最初のシートの一番下の行にあるデータにレスポンスIDを追加しています。フォームが送信されると、シートの最後にデータが追加されますので、そこにIDを振っておけばいい、というわけです。シート名などでは識別していないので、余計なシートを作成しないようにしてください。

 また、ユーザーがフォームを送信すると、入力されたメールアドレス宛に登録の受付確認のメールを返信します。この際、登録ID(送信情報のレスポンスIDのことです)と解除用フォームのアドレスを記載することで、受付確認メールからメールマガジンを解除できるようにします。

トリガーを設定する

 作成したsendform関数を、フォームの送信時に実行するようにトリガーを設定しましょう。「リソース」メニューから「現在のプロジェクトのトリガー」を選んでください。

「現在のプロジェクトのトリガー」メニューを選ぶ

 画面に、登録済みのトリガー一覧を表示するダイアログが現れます。「トリガーが設定されていません。……」というリンクが表示されますので、このリンクをクリックして新たにトリガーを追加します。

リンクをクリックし、新しいトリガーを作成する

 トリガーの設定がダイアログに現れます。ここで、「sendform」「フォームから」「フォーム送信時」を選んで、「保存」ボタンをクリックしてください。

「sendform」「フォームから」「フォーム送信時」を選び、保存する

 「承認が必要です」の警告が現れるので、そのまま「続行」ボタンをクリックします。

 「許可のリクエスト」ウィンドウで内容を確認し、「承認する」ボタンをクリックしてください。これでスクリプトが実行できます。

「承認する」ボタンをクリックしてアクセスを許可する

メールマガジンのテンプレートを作成する

 続いて、メールマガジンのテンプレートを作成しましょう。今回は、Googleドキュメントでテンプレートを用意し、コピーして必要な項目を書き込み、新しいメールマガジンを作るようにします。Googleドライブで「作成」ボタンをクリックし、「ドキュメント」を選んで新しいドキュメントを作成してください。

Googleドライブで新しいドキュメントを作る

 ドキュメントを開いたら、上部の「無題ドキュメント」をクリックし、名前を「メルマガ・テンプレート」と設定しておきましょう。

ドキュメントの名前を「メルマガ・テンプレート」にする

ドキュメントのIDをチェックする

 「ツール」メニューから「スクリプトエディタ...」を選び、スクリプトエディタを開き、作成したドキュメントのIDを調べます。

「スクリプトエディタ...」メニューを選ぶ

 スクリプトエディタが現れたら、上部の「無題のプロジェクト」をクリックし、名前を「メルマガ・テンプレート」と設定しておきましょう。

名前を「メルマガ・テンプレート」にする

 リスト3のスクリプトを記述します。

リスト3


function checkId() {
  Logger.log(DocumentApp.getActiveDocument().getId());
}

 「ファイル」メニューで「保存」をクリックして、「実行」メニューから「checkId」を選び、スクリプトを実行します。例によって「承認が必要です」の警告が現れますが、そのまま「続行する」を選び、「許可のリクエスト」ウィンドウで「承認する」ボタンを押してください。

「checkId」メニューを選ぶ

 実行したら、「表示」メニューの「ログ」を選び、ログを呼び出します。ドキュメントのIDをコピーし保管しておきましょう。

ログにIDが表示されるのでコピーしておく

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています