[Docs]스프레드시트

H열에 날짜가 10일 안으로 다가왔다면 메일을 발송하는 스크립트

by nanumi posted Mar 10, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

H열에 날짜가 10일 안으로 다가왔다면 메일을 발송하는 스크립트

스프레드시트에서는 특정 시간에 스크립트를 자동으로 실행하는 기능이 없기 때문에, 이 경우에는 스크립트를 주기적으로 실행시켜서 확인해야합니다.

 

이를 위해서는 Google Apps Script에서 시간 기반 트리거를 사용해야합니다.

 

다음은 H열에 저장된 날짜 값이 10일 이내인 경우에 메일을 보내는 Google Apps Script 코드의 예입니다.

 

이 코드를 스크립트 에디터에 붙여넣고 "AddTrigger" 함수를 실행하면, H열의 값이 변경될 때마다 1시간마다 스크립트가 실행되는 시간 기반 트리거가 생성됩니다.

 


 

function sendEmails() {

  var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1"); // 시트 이름에 따라 수정

  var dataRange = sheet.getDataRange();

  var values = dataRange.getValues();

  var today = new Date();

  var timezone = Session.getScriptTimeZone();

  

  for (var i = 0; i < values.length; i++) {

    var row = values[i];

    var date = row[7]; // H열에 날짜 값이 있다고 가정

    if (date != "") {

      var daysToEvent = Math.floor((date - today) / (24 * 60 * 60 * 1000)); // 날짜 차이 계산

      if (daysToEvent <= 10 && daysToEvent >= 0) { // 10일 이내인 경우 메일 보내기

        var emailAddress = row[3]; // 수신자 이메일 주소가 저장된 열에 따라 수정

        var subject = "Reminder: Event is in " + daysToEvent + " days";

        var message = "Hello,\n\nThis is a reminder that your event is in " + daysToEvent + " days.\n\nThank you.";

        MailApp.sendEmail(emailAddress, subject, message);

        sheet.getRange(i + 1, 8).setValue("Sent"); // 메일을 보낸 표시를 H열에 저장

      }

    }

  }

}

 

function AddTrigger() {

  ScriptApp.newTrigger('sendEmails')

      .timeBased()

      .everyHours(1)

      .create();

}

 

 

 

 

주의사항

이 코드에서 Sheet1은 시트 이름에 따라 수정해야합니다.

또한 이메일 주소가 저장된 열 번호와 메일 내용도 필요에 따라 수정해야합니다.

 

마지막으로, 코드를 실행하기 전에는 "Resources" 메뉴에서 "Advanced Google Services"를 활성화하고,

Gmail API를 사용할 수 있도록 권한을 부여해야합니다.

 

위의 코드에서 MailApp.sendEmail() 메소드를 사용하여 이메일을 보내기 때문에, 스크립트 실행 시간 동안 계정이 로그인되어 있어야합니다.

 

따라서 이 코드를 사용하려면 Google 계정이 로그인된 브라우저에서 스크립트를 실행해야합니다.