한국GPT협회 표준교재
506. 이메일 발송 자동화
엑셀 명단으로 개인별 첨부 메일을 일괄 발송
이메일 발송 자동화
Learning Objectives
- 엑셀 명단으로 개인별 첨부 메일을 일괄 발송하는 VBA를 받는다.
- 본인 주소로 발송 테스트 후 실제 발송에 적용한다.
- 수료증·안내문 등 명단 기반 메일 발송을 자동화한다.
사례
이메일 발송 자동화
공통학습 안내읽기. 엑셀 VBA가 CDO(Collaboration Data Objects)로 SMTP 서버에 직접 연결해 메일을 보낸다는 원리와, 명단 + 첨부 파일을 매칭해 개인화 발송하는 흐름을 이해하면 됩니다.
비즈니스 상황 — 부서별 자료를 담당자에게 송부
부서별 파일을 담당자에게 하나씩 첨부해 메일로 보내는 일은 수십 통이면 반나절입니다. 이 사례는 엑셀 수신자 명단(부서·이메일)을 읽어 부서명에 맞는 첨부 파일을 찾고, 제목·본문을 개인화해 일괄 발송한 뒤 결과를 명단에 기록합니다.
| 준비 | 내용 |
|---|---|
| SMTP 서버 | 네이버 예: smtp.naver.com / 포트 465 (SSL) |
| 인증 | 네이버 메일 → 환경설정 → POP3/SMTP "사용함", 2단계 인증 시 애플리케이션 비밀번호 발급 |
| 수신자 명단 | A열 부서명 · B열 이메일 · C열 발송상태(VBA가 자동 기록), 2행부터 데이터 |
| 첨부 규칙 | 같은 폴더 하위 "부서별파일"에서 부서명_인사현황.xlsx를 찾아 첨부 |
이메일 발송 VBA — CDO.Message
엑셀 VBA 코드를 작성해줘. CDO.Message를 이용한 이메일 자동 발송이야.
- SMTP 서버: smtp.naver.com, 포트 465, SSL 사용
- 발신자 이메일: InputBox로 입력받아
- 비밀번호: InputBox로 입력받아 (코드에 직접 넣지 않아)
- 수신자 명단은 현재 시트에 있어:
- A열: 부서명 (2행부터 데이터) / B열: 이메일
- C열: 발송상태 (빈칸이면 발송, "완료"면 건너뜀)
- 첨부 파일: 엑셀 파일과 같은 폴더의 "부서별파일" 하위 폴더에서
"부서명_인사현황.xlsx" 파일을 찾아
- 이메일 제목: "[부서명] 2025년 상반기 인사현황 자료 송부"
- 이메일 본문: HTML 형식, "담당자님께 / 인사부입니다 / 자료 송부드립니다 / 확인 부탁드립니다 / 감사합니다"
- 발송 성공 시 C열에 "완료"와 발송 시각 기록, 실패 시 "실패: 에러메시지" 기록
- 한글 문자열은 ChrW()를 사용해줘
- 각 발송 사이 2초 대기(서버 부하 방지)
- 완료되면 MsgBox로 발송 건수를 알려줘
보안 — 반드시 지킬 4가지.
① 비밀번호를 코드에 직접 넣지 않기(InputBox로 입력)
② ChatGPT 프롬프트에 실제 비밀번호 입력 금지
③ 발송 테스트는 모든 수신지를 본인 주소로 바꿔서
④ 실습 후 애플리케이션 비밀번호 삭제·변경
실습
발송 테스트와 메일 연계
공통학습 안내산출. 모든 수신지를 본인 메일로 바꿔 안전하게 테스트합니다. 완료 기준: 명단의 행이 본인 주소로 발송되고 C열에 "완료"가 기록되면 통과.
달성 목표
3행짜리 테스트 명단(모두 본인 이메일)으로 첨부 메일 일괄 발송 + 발송상태 자동 기록을 완성한다. 동작을 확인한 뒤, 앞의 수료증 PDF 생성(HR·교육) 결과와 연결해 "명단 → 개인별 PDF → 개인별 메일"의 전 과정을 구상한다.
실습 순서
- 네이버 메일에서 POP3/SMTP를 "사용함"으로 켜고, 2단계 인증 시 애플리케이션 비밀번호를 발급한다.
- 새 시트에 A열 부서명·B열 이메일(전부 본인 주소)·C열 발송상태로 3행을 만든다.
- "부서별파일" 폴더에 테스트용 첨부 파일 1~2개를 둔다.
- 시연의 CDO 프롬프트로 받은 코드를 모듈에 붙여넣고 실행 → InputBox에 발신 주소·앱 비밀번호 입력.
- 본인 메일함에서 수신 확인하고, C열에 "완료"가 기록됐는지 본다.
- (응용) 수료증 PDF 명단의 F열 이메일을 수신자로,
수료증_이름_번호.pdf를 첨부로 바꾸면 개인별 수료증 자동 발송이 된다.
주의. 실습이 끝나면 애플리케이션 비밀번호를 즉시 삭제·변경하고, 명단·코드에 남은 인증 정보를 제거하십시오. 실제 고객·임직원 메일로 보내는 운영 발송은 회사 정책과 발송 한도(스팸 분류)를 먼저 확인합니다.