パーソナライズ対応!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」「フォームから」「フォーム送信時」を選んで、「保存」ボタンをクリックしてください。
「承認が必要です」の警告が現れるので、そのまま「続行」ボタンをクリックします。
「許可のリクエスト」ウィンドウで内容を確認し、「承認する」ボタンをクリックしてください。これでスクリプトが実行できます。
メールマガジンのテンプレートを作成する
続いて、メールマガジンのテンプレートを作成しましょう。今回は、Googleドキュメントでテンプレートを用意し、コピーして必要な項目を書き込み、新しいメールマガジンを作るようにします。Googleドライブで「作成」ボタンをクリックし、「ドキュメント」を選んで新しいドキュメントを作成してください。
ドキュメントを開いたら、上部の「無題ドキュメント」をクリックし、名前を「メルマガ・テンプレート」と設定しておきましょう。
ドキュメントのIDをチェックする
「ツール」メニューから「スクリプトエディタ...」を選び、スクリプトエディタを開き、作成したドキュメントのIDを調べます。
スクリプトエディタが現れたら、上部の「無題のプロジェクト」をクリックし、名前を「メルマガ・テンプレート」と設定しておきましょう。
リスト3のスクリプトを記述します。
リスト3
function checkId() {
Logger.log(DocumentApp.getActiveDocument().getId());
}
「ファイル」メニューで「保存」をクリックして、「実行」メニューから「checkId」を選び、スクリプトを実行します。例によって「承認が必要です」の警告が現れますが、そのまま「続行する」を選び、「許可のリクエスト」ウィンドウで「承認する」ボタンを押してください。
実行したら、「表示」メニューの「ログ」を選び、ログを呼び出します。ドキュメントのIDをコピーし保管しておきましょう。