구글시트에 입력한 값이 바뀌면 담당자에게 메일을 자동으로 보내고 싶을 때가 많습니다. 재고가 기준보다 떨어졌을 때, 신청서 상태가 바뀌었을 때 같은 경우입니다. 이 글은 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 정책과 화면 업데이트에 따라 달라질 수 있습니다.
참고한 공식 문서
'업무 자동화' 카테고리의 다른 글
| 파이썬 크롤링 403 Forbidden 에러 원인과 해결법 (0) | 2026.10.27 |
|---|---|
| Apps Script 메일이 Outlook 스팸함으로 가는 이유 (1) | 2026.10.14 |
| Zapier, Make, IFTTT 무료 플랜 한도 비교: 직장인 개인 업무 자동화 도구 선택 가이드 (0) | 2026.10.08 |