Googleフォームによる無料メルマガ配信システムの作り方 (3/3)
2014年07月14日 13時00分更新
メールマガジン解除フォームを試してみる
作成したメールマガジン解除のフォームを使ってみましょう。フォームの「ライブフォームを表示」ボタンをクリックしてください。
フォームが開きます。ここで、メールマガジンに登録してあるメールアドレスと登録IDを記入します。
送信すると、「メルマガの解除を受け付けました。」とメッセージが表示されます。これで解除処理が実行されているはずです。
解除が処理されると、そのメールアドレス宛に解除を知らせるメールが送られます。これで解除されたことが確認できます。以後、解除したアドレスにメールマガジンは送られません。
動作を確認したら、前回作成したメルマガ登録フォームのスクリプトエディタを開き、sendform関数の「☆解除フォームのアドレス☆」のところに、今回作成したフォームのアドレスを記述しておきましょう。
メルマガ解除の仕組み
以上でメールマガジンの解除の処理ができました。メールマガジンを解除するスクリプトでは、スプレッドシートにあるメールアドレスは実際には削除せずに、配信停止の目印をつけて処理しています。
メールマガジン登録の回答用スプレッドシート(メルマガ登録(回答))を開いて、解除したデータがどうなっているかを見てみましょう。データそのものは残っており、「興味あるジャンル」の右側の空白セルに「LEFT」(leave:「去る」の過去分詞)という値が設定されていることが分かります。
メールマガジンを送信する際、このE列の値をチェックし、空ならばメールを送信するようにしてあります。ここに「LEFT」と設定してあればメールは送られない、というわけです。
ショップなどであれば、顧客の情報を収集することを目的にメールマガジンを発行している場合も多いでしょう。解除によってデータをいきなり削除してしまうのはもったいないので、「データは削除せず、送信するか否かを示す値を用意する」というやり方をとっています。
もちろん、個人情報の管理については運営側に責任が生じますので、あらかじめメールマガジンの登録によって集めた個人情報の扱いについて、きちんと掲載しておくようにしてください。
応用:ドキュメントをPDFで送る
このメールマガジン送信のスクリプトは、いろいろと応用できます。メールマガジンに登録されたメールアドレスはショップの重要な顧客データですから、もっとこれを活用したい、と思うことは多いでしょう。たとえば何かのイベントの際、メールマガジンに登録している人へ案内のドキュメントを送付することを考えてみましょう。
これも、ドキュメントのテンプレートを利用します。テンプレートとなるドキュメントにスクリプトを設定しておき、必要に応じてコピーして利用します。まずは、Googleドライブの「作成」ボタンから「ドキュメント」を選び、新しいドキュメントを作りましょう。名前は「案内テンプレート」と設定しておきます。
ドキュメントの「ツール」メニューから「スクリプトエディタ...」を選び、スクリプトエディタを開きます。以下のようにスクリプトを記述しましょう。「☆メルマガ登録(回答)のスプレッドシートのID☆」には、メールマガジン登録フォームの回答を保管するスプレッドシートのIDを指定します。
リスト3
function onOpen(){
var ui = DocumentApp.getUi();
var menu = ui.createMenu("配信");
menu.addItem("ドキュメントを配信", "sendMagazine");
menu.addToUi();
}
function sendMagazine(){
var ui = DocumentApp.getUi();
var re = ui.prompt("メッセージ", "メールにつけるメッセージを入力下さい。",
ui.ButtonSet.OK_CANCEL);
switch(re.getSelectedButton()){
case ui.Button.OK:
var msg = re.getResponseText();
break;
case ui.Button.CANCEL:
return;
case ui.Button.CLOSE:
return;
}
var sheet = SpreadsheetApp.openById("☆メルマガ登録(回答)のスプレッドシートのID☆").getSheets()[0];
var row = sheet.getLastRow();
for (var i = 2;i <= row;i++){
var body = sheet.getRange(i, 2).getValue() + "様\n" + msg + "\n\n";
var pdf = DocumentApp.getActiveDocument().getAs("application/pdf");
MailApp.sendEmail(sheet.getRange(i, 3).getValue(), "ショップABCよりご案内", body, {attachments:pdf});
}
}
何かの案内を作成する場合は、このテンプレートをコピーしてドキュメントを作ってください。ドキュメントが作成できたら、「配信」メニューから「ドキュメントを配信」メニューを選びます。
いつものように承認のためのダイアログが現れ、ログインして承認すると、メールの冒頭に表示するメッセージの入力ダイアログが現れます。ここにテキストを記入してOKします。
これで、メールマガジンに登録した全員に(登録解除した人も含め)、ドキュメントをPDFとして添付したメールを送信します。メールマガジンと異なり、ドキュメントそのものをPDFで配布しますので、凝ったレイアウトの案内などもそのまま送れます。
メールマガジン登録で集まった顧客データを利用して各種の案内を送るスクリプトは、ほかにも応用できそうです。応用例のスクリプトをベースに、いろいろカスタマイズに挑戦してみるといいでしょう。