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

[중급 10편] 파이썬으로 보고서 자동 생성 & 메일 발송.zip

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

“매일 엑셀 파일 만들고 메일로 보내는 작업, 자동으로 안 될까?”

이번 편에서는 파이썬으로  
1. 데이터를 읽고  
2. 엑셀 보고서를 생성한 뒤  
3. 자동으로 메일에 첨부해서 발송  
하는 **완성형 자동화 파이프라인**을 만들어봅니다.

✅ 1. CSV 파일 읽기 & 요약 보고서 만들기

import pandas as pd

df = pd.read_csv("data/매출.csv")

# 날짜별 매출 합계 요약
summary = df.groupby("날짜")["금액"].sum().reset_index()
summary.columns = ["날짜", "총매출"]

# 엑셀 저장
summary.to_excel("output/매출요약.xlsx", index=False)

📌 포인트  
- `groupby`로 요약하고 `to_excel`로 저장  
- 엑셀 저장 시 `index=False` 꼭 추가

---

✅ 2. 이메일 자동 발송 (첨부 포함)

import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["Subject"] = "일일 매출 보고서"
msg["From"] = "you@example.com"
msg["To"] = "team@example.com"
msg.set_content("첨부된 파일은 오늘 매출 요약입니다.")

# 첨부파일 추가
with open("output/매출요약.xlsx", "rb") as f:
    file_data = f.read()
    msg.add_attachment(file_data, maintype="application", subtype="vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename="매출요약.xlsx")

# 발송
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
    smtp.login("you@example.com", "앱비밀번호")
    smtp.send_message(msg)

📌 발송 시 주의사항  
- Gmail은 앱 비밀번호 필요  
- 다른 메일 서비스는 SMTP 주소/포트 다를 수 있음

---

✅ 3. 실전 자동화 응용 예시

- 매일 CSV로 저장되는 매출, 로그, 방문자 수 통계 등 자동 보고  
- 월말 엑셀 요약 후 회계팀 메일 자동 발송  
- 웹 크롤링 → 엑셀 요약 → 메일까지 완전 자동 루틴

---

✅ 마무리 요약

✔ CSV 읽기 → pandas  
✔ 요약 & 저장 → to_excel  
✔ 메일 발송 → email + smtplib  
✔ 첨부파일 포함 메일까지 완성!

다음 11편에서는 **자동 스케줄링 (정해진 시간에 자동 실행)** 기능까지 이어갑니다.