![見出し画像](https://assets.st-note.com/production/uploads/images/88754947/rectangle_large_type_2_b36d12d6e2edc6a31183a7789c3a6444.png?width=1200)
スプレッドシートの基本操作とGmailAppを組み合わせてメール配信システムを作る【1】【GAS】【Googleスプレッドシート】
今回組み合わせるプログラムは、「GmailApp.sendEmail」というプログラムです。
今まで学んできたスプレッドシートから値をとる+繰り返しと組み合わせることで、簡単なメール配信システムを構築しています。
GmailApp.sendEmail
GmailApp.sendEmail(address, subject, body, options)
この一文で、メールを配信することができます。
単純な例を書くと、このようになります。このままでも動きますので試してみてください。
function mail1 ( ) {
GmailApp.sendEmail('aaa@bbb.com', 'タイトル', '本文');
}
![](https://assets.st-note.com/img/1665460403695-souNdYdGLQ.png)
スプレッドシートで表を作る
今回の目的は、個別でスクリプトで配信することではなく、スプレッドシートから一括配信することです。
このような表を作りました。
![](https://assets.st-note.com/img/1665460939425-R5y1YVacxO.png?width=1200)
左から、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) と、行項目を変数に変えています。
こちらで完成です。
いいなと思ったら応援しよう!
![経理⇒関数⇒GAS](https://assets.st-note.com/production/uploads/images/140964968/profile_288626afe8f483640cfe2d9f1443c519.png?width=600&crop=1:1,smart)