본문 바로가기
프로그래밍/프로젝트

구글 시트 업데이트 시 메일 자동 발송(Apps script)

by 숙님 2024. 2. 29.
728x90

0. 배경 

행사 내용 업데이트 등 비주기적으로 소식이 업데이트될 때, 매번 업데이트 소식을 공유하는 것이 번거롭게 느껴질 때가 있다 그래서 행사 시트를 담당자가 입력하면 관계자에게 바로 알림 메일이 발송되는 프로그램을 만들어서 사내 공유했다 ㅎㅎ

 

1. 완성했을 때 상황 

좌: 작업하는 화면 / 우: 받은 메일 

 

 

2. 방법

1. 구글 시트 생성 

2. 바뀌는 항목 설정 (아래의 코드에서는 a열로 설정) 

3. 앱스스크립트 열기 

4. 코드 작성 

5. 원하는 상황의 트리거 설정 

6. 세팅 후 실제로 잘 동작하는 지 확인하기 

 

3. 코드 

var lastEditedCell = null;

function onEdit(e) {
  var range = e.range;
  var sheet = range.getSheet();
  
  // 수정된 셀의 행과 열
  var row = range.getRow();
  var col = range.getColumn();
  
  // A열이 비어있지 않고, A열에 입력되었을 때만 이메일을 보냄
  if (col === 1 && sheet.getRange(row, col).getValue() !== "" && (lastEditedCell === null || lastEditedCell.getRow() !== row || lastEditedCell.getColumn() !== col)) {
    // 수정된 셀의 값
    var value = sheet.getRange(row, col).getValue();

    // 이메일 제목 설정
    var subject = "이메일 제목";
    // 이메일 내용 설정
    var body = "행사 마켓: " + value + "\n시트 링크: " + SpreadsheetApp.getActiveSpreadsheet().getUrl();
    
    // 이메일 전송
    MailApp.sendEmail({
      to: "abc@gmail.com",
      subject: subject,
      body: body
    });

    // 마지막으로 수정된 셀 저장
    lastEditedCell = range;
  }
}

댓글