見出し画像

【小規模事業者向け】自作マーケティングオートメーションででっかい成果を生み出す! 〜2.実装編〜

こんにちは、よさそう®です。

前回のMAに関する説明に引き続き、今回は具体的な実装の仕方についてお話します。

メール送信リストをGoogle SpreadSheetで作る

まずはGoogle Spread Sheetでメール送信対象者のリストを作ります。ゼロからシートを作るのもいいですし、Google Formsでメール送信対象者を集めてもいいですね。

メールアドレスやお名前が含まれた送信者リストのイメージはこちらです。

送信したいリストのイメージ

Google Apps Scriptでメールを送る

Google Apps ScriptはGoogle Apps Scriptのメニューから、拡張機能>Apps Scriptとたどると起動します。

Apps Scriptを起動する。

プログラムで実現したいことは「メール送信リストの対象者にメールを送る」です。

そのために、対象となるスプレッドシートを読み込んで、リストに載っている人全員にメールを送る、というプログラムを書いていきます。

さきほどのスプレッドシートを例として、メール送るサンプルプログラムはこちらです。

function myFunction() {
   // メール本文 //
  const mailTitle = 'ここにメールのタイトルを書く';
  const mailBody = 'ここにメール本文を書く';
  const mailFooter = 'ここにメールのフッターを書く';

  /*** 変数宣言 ***/
  var targetName = null; // 名前
  var targetMailAddress = null; // メールアドレス

  var rowIdx = 0; // スプレッドシート走査用行インデックス
  
  const mainBook = SpreadsheetApp.openById('ここにSpreadSheetのIDを書く');
  const mainSheet = mainBook.getSheetByName(ここにシート名を書く);
  const values = mainSheet.getDataRange().getValues(); // シートの内容を全部持ってくる
  
  // シートの内容について、1行ずつ処理を繰り返す
  for (rowIdx = 1 ; rowIdx < values.length ; rowIdx ++){

    // 送信対象者の情報を取得する。
    targetMailAddress = String(values[rowIdx]['メールアドレス列の列番号-1を書く']);
    targetName = String(values[rowIdx]['名前列の列番号-1を書く']);

       // 送信者のお名前でヘッダーを作る。
    var mailHeader = targetName + ' 様<br><br>';

       var mailHtmlBody = mailHeader + mailBody + mailFooter;
      
    var mailArgs = {
      htmlBody: mailHtmlBody
    };
    GmailApp.sendEmail(targetMailAddress, mailTitle, mailHtmlBody, mailArgs);
      
    // 大量送信によるアカウント異常と誤解されないように1通送るたびに1秒待つ。
    Utilities.sleep(1000);

  }   
}

プログラムの解説や注意事項

実行は6分間まで

Google Apps Scriptは実行は最長で6分間までとなっています。
6分間を超えると途中で終了します。Excel VBAとかですと実行時間の制限はないので、この点が違うところですね。
なので、プログラムを組むときには6分間を超えないように処理を分割したり、6分間を超えないように処理時間が短くなる工夫が必要です。

列と行の番号の考え方

処理時間を短くする工夫の一つとして、プログラムの最初でシート全体の値を取得しています。
一方で、この方法で取得した値を見に行くときには、シート上で見えている行や列の番号からマイナス1した場所で考える必要があります。
プログラミングに慣れていない方には「???」だと思います。
先ほどのリストの例ですと、1行目はプログラム内では0行目、お名前の列は1列目にあるのですが、プログラム内では0列目となります。

大量のメールを送る場合、1回送信したら1秒おやすみ。

私の失敗談になるのですが、6分間の制約があるので、ひたすら連続して大量のメールを送ったことがあります。そうしたら、途中でエラーが発生して送れなくなりました。
どうやら短時間で大量にメールを一気に送信する行為がよくないようでした。

ということで、プログラムのなかで、

Utilities.sleep(1000);

と書いて、”1通送ったら1秒おやすみ”という仕組みを入れています。

ということで、今回はGoogle Apps Scriptでメールを送る仕組みの実装の仕方について説明しました。

次回からは今回のプログラムを土台として、応用編に入ってまいります。

最後までお読みいただきありがとうございました。
よろしければ、いいねやフォローをいただけますと励みになります。

この記事が気に入ったらサポートをしてみませんか?