개발 공부/기타

[Google Sheets + Apps Script] 이메일 자동 발송 시스템 만들기 실전 가이드

악마의 개발자 2025. 4. 22. 11:30
반응형


안녕하세요! 😊
지난 글에서는 MailerLite와 Google Sheets를 연동해서
구독자 명단을 자동으로 수집하는 방법을 알아봤어요.

이번엔 한 단계 더 나아가
구글 시트에 입력된 명단으로 자동으로 이메일을 발송하는 시스템을 직접 만들어볼게요!

개발자가 아니어도 OK!
Google Apps Script(GAS)를 활용하면
✔ 직접 메일 내용 작성
✔ 구독자 정보 기반 퍼스널라이징
✔ 자동 반복 발송도 가능해요!


✅ 오늘의 핵심 목표

✔ Google Sheets + Apps Script 연동 방법
✔ 구독자 명단 기반 자동 메일 발송
✔ 템플릿 활용한 퍼스널라이징 구현


1️⃣ 사전 준비

항목 준비 내용
Google 계정 Gmail 필수
구독자 명단 시트 Email / Name / 상태 열 포함
Google Apps Script 구글 스프레드시트 내장 스크립트 기능

2️⃣ 구독자 시트 구조 예시

| Email               | Name   | Status   |
|---------------------|--------|----------|
| test1@example.com   | 철수   | 대기     |
| test2@example.com   | 영희   | 대기     |

✅ 메일 발송 완료 시 → 상태를 ‘완료’로 업데이트


3️⃣ Apps Script 코드 입력하기

  1. 스프레드시트 열기
  2. 상단 메뉴에서 확장 프로그램 > Apps Script 클릭
  3. 아래 코드 입력 & 저장
function sendEmails() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("시트1"); // 시트 이름
  const data = sheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {
    const email = data[i][0];
    const name = data[i][1];
    const status = data[i][2];

    if (status !== "완료") {
      const subject = `${name}님, 뉴스레터를 보내드립니다!`;
      const body = `
        안녕하세요 ${name}님,  
        이번 주에도 유용한 정보를 전달드립니다 😊  
        👉 최신 뉴스 확인하기: https://example.com

        감사합니다!
      `;

      GmailApp.sendEmail(email, subject, body);
      sheet.getRange(i + 1, 3).setValue("완료"); // 상태 업데이트
    }
  }
}

4️⃣ 메일 테스트 & 실행 방법

  • 상단 ▶️ 실행 버튼 클릭 → 테스트 메일 발송됨
  • 에러 시 → [권한 승인] 창이 뜨면 ‘허용’ 클릭

💡 이메일이 정상적으로 발송되었는지 스프레드시트에서 '상태' 확인!


5️⃣ 자동 반복 설정 (시간 트리거)

  1. Apps Script 상단 시계 아이콘 🕒 클릭
  2. [트리거 추가] → sendEmails 함수 선택
  3. 시간 기반 트리거 설정
    → 예: 매일 오전 9시 자동 발송

✅ 이젠 매일 자동으로 이메일이 발송됩니다! 🎉


✅ 확장 아이디어

기능 구현 방법
HTML 이메일 MailApp.sendEmail({htmlBody: ''}) 사용
맞춤 링크 ${name} 전용 링크 삽입
첨부파일 발송 .addFile(DriveApp.getFileById(ID))

📌 마무리 & 다음 단계는?

오늘은 Google Sheets와 Apps Script를 활용해서
✅ 이메일 자동 발송 시스템을 구축해봤어요!
이제 직접 명단을 넣고, 클릭 한 번으로 퍼스널 메일을 보낼 수 있어요.


📢 다음 글에서는?

👉 HTML 이메일 템플릿 디자인 적용하기
👉 자동화된 응답 수집 & 통계 시트 만들기

 

다음 글도 기대해주세요! 😊

 

반응형