본문 바로가기
PYTHON/중급학습

[중급 9편] 파이썬으로 자동 메일 보내기.zip

by Kim.Sung 2025. 5. 14.
728x90

이번 편에서는 파이썬으로 **파일 첨부된 메일을 자동 발송하는 실무 자동화**를 다룹니다.  
보고서, 리포트, CSV 파일 등을 매번 메일에 첨부해 보내는 일이 있다면,  
이제 파이썬으로 버튼 하나 없이 처리할 수 있습니다.


✅ 1. SMTP 기본 설정

import smtplib
from email.message import EmailMessage

# 기본 메일 정보 설정
msg = EmailMessage()
msg["Subject"] = "월간 보고서"
msg["From"] = "your_email@example.com"
msg["To"] = "target_email@example.com"
msg.set_content("첨부된 보고서를 확인해 주세요.")

---

✅ 2. 파일 첨부하기 (예: 엑셀/CSV)

with open("report.xlsx", "rb") as f:
    file_data = f.read()
    file_name = f.name

msg.add_attachment(file_data, maintype="application", subtype="octet-stream", filename=file_name)

---

✅ 3. 메일 전송하기 (Gmail 기준)

smtp = smtplib.SMTP_SSL("smtp.gmail.com", 465)
smtp.login("your_email@example.com", "앱 비밀번호")
smtp.send_message(msg)
smtp.quit()

📌 Gmail은 보안상 일반 비밀번호 대신 **앱 비밀번호** 사용해야 함  
👉 2단계 인증 → 보안 > 앱 비밀번호 발급

---

✅ 4. 여러 명에게 자동 전송

emails = ["a@ex.com", "b@ex.com", "c@ex.com"]

for addr in emails:
    msg["To"] = addr
    smtp.send_message(msg)

→ 반복문으로 메일 본문만 바꿔 대량 발송도 가능

---

✅ 활용 예시

✔ 보고서 자동 발송 (CSV, 엑셀)  
✔ 반복 업무 결과물 매일 자동 전달  
✔ 특정 조건 시 자동 알림 메일 발송

---

✅ 실무 꿀팁

- 보내는 메일 주소는 Gmail 외에도 네이버, 다음, 회사메일 모두 가능 (SMTP 서버 주소 확인 필요)  
- 파일은 용량 20MB 이내 권장  
- HTML 본문 작성 시 `msg.add_alternative()` 사용 가능

---

📌 요약

- 메일 제목/본문/수신자 설정  
- 첨부파일은 `.add_attachment()`로 처리  
- SMTP 접속 → 로그인 → 전송 → 종료

다음 편에서는 **HTML 메일 템플릿 활용 & 자동 스케줄링**까지 이어집니다.