見出し画像

スプレッドシートの基本操作とGmailAppを組み合わせてメール配信システムを作る【1】【GAS】【Googleスプレッドシート】

今回組み合わせるプログラムは、「GmailApp.sendEmail」というプログラムです。
今まで学んできたスプレッドシートから値をとる+繰り返しと組み合わせることで、簡単なメール配信システムを構築しています。

GmailApp.sendEmail

GmailApp.sendEmail(address, subject, body, options)
この一文で、メールを配信することができます。
単純な例を書くと、このようになります。このままでも動きますので試してみてください。

function mail1 ( ) {
   GmailApp.sendEmail('aaa@bbb.com''タイトル''本文');
}

スプレッドシートで表を作る

今回の目的は、個別でスクリプトで配信することではなく、スプレッドシートから一括配信することです。
このような表を作りました。

左から、A:送信先、B:氏名、C:タイトル、D:本文です。
GmailApp.sendEmail(【A列】, 【C列】, 【D列】);と対応すればよいです。
※B列氏名は、表にはあるけれどメールの配信には影響しない項目です。
2行目を送信するとしたら、このような記載になります。

function sendMail1(){
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   
   var recipient = sheet.getRange(2, 1).getValue(); //受取人 A列
   var subject = sheet.getRange(2, 3).getValue();
   var body = sheet.getRange(2, 4).getValue();
   
    GmailApp.sendEmail(recipient, subject, body );
   }

これを、2行から5行の4回繰り返して配信します。

function sendMail2(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   
  for(var i = 2; i <= 5; i++){     // 2から5を繰り返し  
  
   var recipient = sheet.getRange(i, 1).getValue(); //受取人 A列
   var subject = sheet.getRange(i, 3).getValue();
   var body = sheet.getRange(i, 4).getValue();
   
    GmailApp.sendEmail(recipient, subject, body );
  }
  }

for(var i = 2; i <= 5; i++){ }
で繰り返しをくくりました。「2」行目が「3」「4」「5」となるように、getRange(i, 1) と、行項目を変数に変えています。

こちらで完成です。

どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。