【GAS】スプレッドシートからメールを自動送信

Google Apps Script

どーも!marusukeです!

Google Apps Scriptでスプレッドシートのメールアドレス一覧を上から順にメール送信する処理を作成します!

機能の要件

今回の機能は以下のような機能を持っているものとします!

  • スプレッドシートの「一覧」シートを処理の対象シートとする
  • 2行目から処理を実行する
  • 「一覧」シートのカラムは、以下の5つとする
    1. 名前
    2. 送信可否
    3. メールアドレス
    4. メッセージ
    5. 送信状況
  • 送信する条件は以下とする
    • 「送信可否カラムに「○」が入っていること」かつ、「送信状況カラムが”送信済み”でないこと」である行のみ送信する
  • メールの件名は「自動メール: 〇〇さんへ」とする
  • メール本文は、メッセージカラムの内容とする
  • 送信完了したら、送信状況カラムに「送信済み」を入力する

というような要件で作ります!

ちなみに一覧シートは以下のような見た目になります

コード

Google Apps Scriptのコードは以下です!

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("一覧");
  var data = sheet.getDataRange().getValues();
  
  // 最初の行はヘッダー行なので、2行目から処理を開始する
  for (var i = 1; i < data.length; i++) {
    var row = data[i];
    var name = row[0];
    var canSend = row[1];
    var emailAddress = row[2];
    var message = row[3];
    var sent = row[4];
    
    // 送信可否が○で、かつ送信済みでない場合にメールを送信
    if (canSend === '○' && sent !== '送信済み') {
      var subject = '自動メール: ' + name + 'さんへ';
      var body = message;
      
      MailApp.sendEmail(emailAddress, subject, body);
      
      // 送信済みマークを付ける
      sheet.getRange(i + 1, 5).setValue('送信済み');
    }
  }
}

補足として、このコードを初めて実行するときは、認証が必要になります

こちらの記事に認証方法をまとめたので、お時間ありましたらご覧ください!

まとめ

このようなコードで、スプレッドシートの一覧のメールアドレスに自動的に送信することができます!また、メールの件名や本文内容は変更することができます!

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました