본문 바로가기
업무 자동화

구글시트 값이 바뀌면 메일을 자동 발송하는 Apps Script 기초

by 나그네하나 2026. 10. 11.

구글시트에 입력한 값이 바뀌면 담당자에게 메일을 자동으로 보내고 싶을 때가 많습니다. 재고가 기준보다 떨어졌을 때, 신청서 상태가 바뀌었을 때 같은 경우입니다. 이 글은 Google Apps Script로 이 기능을 만드는 기초 순서를 정리했습니다. 확인 기준일은 2026-10-11이며, 트리거 종류와 메일 한도는 Google Apps Script 공식 문서 기준입니다. 제가 이 스크립트를 실제 시트에 연결해 메일 발송까지 실행해 본 결과는 아닙니다.

이럴 때 이 글을 읽으세요

매일 시트를 열어 값을 확인하고 메일을 따로 보내는 일이 반복된다면, 값 변경 시점에 메일이 나가도록 바꿀 수 있습니다. 다만 메일은 실수로 많이 나가면 복구가 어렵습니다. 그래서 조건과 한도를 먼저 정해 두는 것이 중요합니다.

결론 먼저: 단순 트리거로는 메일이 안 나갑니다

공식 문서에 따르면 onEdit(e) 같은 단순 트리거는 Gmail처럼 권한이 필요한 서비스를 쓸 수 없어서, 메일 발송 코드가 실행되지 않습니다. 메일을 보내려면 사용자가 권한을 승인하는 설치형 트리거(installable trigger)를 만들어야 합니다. 이 글의 순서는 그 기준으로 정리했습니다.

먼저 확인할 한도 (공식 문서 기준)

Google Apps Script는 계정 종류에 따라 하루 한도가 다릅니다. 아래 값은 공식 문서 할당량 표를 2026-10-11 기준으로 정리한 것입니다. 한도는 예고 없이 바뀔 수 있으니 실행 전에 같은 페이지에서 다시 확인하세요.

항목소비자 계정 (gmail.com)Google Workspace 계정
메일 수신자 수 (하루)100명1,500명
트리거 총 실행 시간 (하루)90분6시간
스크립트 실행 1회 제한6분6분
메시지당 수신자 수50명50명
스크립트당 트리거 수 (사용자 기준)20개20개

메일 한도는 수신자 수 기준입니다. 같은 사람에게 여러 번 보내면 그만큼 한도를 씁니다. 그래서 한 행이 바뀔 때마다 메일을 보내기보다, 조건을 좁혀서 필요한 경우만 보내는 편이 안전합니다.

1단계: 시트 열 구조와 조건 정하기

예를 들어 '입력' 시트의 B열에 신청 상태가 들어간다고 해 봅시다. "완료"라는 값이 입력된 행에 대해서만 메일을 보내는 식으로 조건을 먼저 정합니다. 조건이 없으면 빈칸 삭제나 복사 붙여넣기에도 메일이 나갈 수 있습니다.

2단계: 스크립트 작성

시트에서 확장 프로그램 > Apps Script를 열고 아래 코드를 붙여 넣습니다. 메뉴 이름은 화면 버전에 따라 다를 수 있으니 실행 전에 확인하세요. 받는 사람 주소는 예시이므로 본인 주소로 바꿔 쓰세요.

function onEditInstalled(e) {
  const range = e.range;
  if (range.getSheet().getName() !== '입력') return;
  if (range.getNumRows() !== 1 || range.getNumColumns() !== 1) return; // 단일 셀 편집만 처리
  if (range.getColumn() !== 2) return;   // B열만 확인
  if (range.getValue() !== '완료') return; // 조건 값이 아니면 종료
  MailApp.sendEmail({
    to: 'you@example.com',
    subject: '신청 상태 변경: ' + range.getRow() + '행',
    body: range.getRow() + '행의 상태가 "완료"로 바뀌었습니다.'
  });
}

3단계: 설치형 트리거 연결

Apps Script 편집기의 트리거 메뉴에서 트리거를 추가합니다. 실행할 함수는 onEditInstalled로 지정합니다. 이벤트 소스와 유형은 화면 언어에 따라 이름이 다르니, 스프레드시트에서 편집할 때 실행되는 항목을 고릅니다. 처음 실행하면 Gmail 발송 권한을 묻는 창이 뜨는데, 본인 계정으로 승인해야 합니다. 권한 승인 화면은 계정 설정에 따라 경고가 보일 수 있습니다.

4단계: 테스트와 되돌리기 점검

테스트용 시트 한 장에서 먼저 실행하세요. 조건에 맞는 값을 한 번 넣어 메일이 1통 가는지 확인합니다. 그다음 조건에 맞지 않는 값을 넣어 메일이 안 가는지도 확인합니다. 실행 기록은 편집기의 실행 목록에서 볼 수 있습니다. 문제가 생기면 트리거를 삭제해 즉시 멈출 수 있습니다.

직접 해 본 것과 못 해 본 것

이 글의 트리거 제한과 한도는 Google 공식 문서를 기준으로 정리했습니다. 위 코드는 기본 흐름을 보여 주기 위한 예시이며, 제가 실제 시트에서 실행해 메일이 발송되는 것을 확인한 결과가 아닙니다. 메뉴 위치와 권한 화면은 Google 정책과 화면 업데이트에 따라 달라질 수 있습니다.

참고한 공식 문서