-
📩 파이썬으로 자동 이메일 리포트 전송하기기술개발 2025. 6. 16. 21:39
지금까지 시리즈에서는 Python으로 주식 데이터를 분석하고 시각화하는 리포트를 자동 생성하는 방법을 다뤘습니다.
이번 글에서는 여기서 한 발 더 나아가,
생성된 리포트를 이메일로 자동 전송하는 방법을 소개합니다.- 📬 매일 아침 최신 리포트를 이메일로 받고 싶다면?
- 🗂️ 여러 명에게 동시에 이메일로 리포트를 공유하고 싶다면?
이제 Python으로 간단히 해결해봅시다!
✅ 이번 글의 목표
- 생성된 리포트(CSV, PDF 등)를 자동으로 이메일 전송
- Gmail SMTP를 활용한 간단한 이메일 발송 자동화
- 크론/작업 스케줄러로 완전 자동화
🔧 1단계: 이메일 발송 기본 세팅
Python의 내장 라이브러리인 smtplib을 사용해 이메일을 보냅니다.
import smtplib from email.message import EmailMessage # 기본 설정 EMAIL_ADDRESS = 'your-email@gmail.com' EMAIL_PASSWORD = 'your-password' # 앱 비밀번호 사용 권장 msg = EmailMessage() msg['Subject'] = '오늘의 주식 리포트' msg['From'] = EMAIL_ADDRESS msg['To'] = 'recipient@example.com' msg.set_content('안녕하세요, 오늘의 주식 리포트를 첨부했습니다.')
📎 2단계: 리포트 파일 첨부하기 (CSV, PDF 등)
생성된 CSV 또는 PDF를 이메일에 첨부할 수 있습니다.
# 파일 첨부 files = ['weekly_return.csv', 'multi_stock_return_graph.png'] for file in files: with open(file, 'rb') as f: file_data = f.read() file_name = f.name msg.add_attachment(file_data, maintype='application', subtype='octet-stream', filename=file_name)
- 여러 파일도 동시에 첨부 가능
- PDF, PNG, CSV 등 다양한 형식을 지원
📧 3단계: 이메일 발송하기 (Gmail SMTP 사용)
Gmail SMTP 서버를 통해 실제로 이메일을 발송합니다.
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD) smtp.send_message(msg) print("✅ 이메일 발송 완료!")
주의: Gmail은 보안상 이유로 앱 비밀번호 사용을 권장합니다.
🚀 4단계: 자동화 설정 (Cron / 작업 스케줄러)
작성한 이메일 발송 스크립트를 매일 아침 자동으로 실행하도록 설정합니다.
- Linux/Mac: cron
- Windows: 작업 스케줄러
크론 예시:
crontab -e
아래 내용을 추가하면 매일 오전 8시에 자동 실행됩니다:
0 8 * * * /usr/bin/python3 /경로/리포트_발송.py
🔑 Gmail 앱 비밀번호 발급 방법 (필수)
파이썬으로 Gmail을 통해 이메일을 자동 발송하려면, Gmail에서 제공하는 **앱 비밀번호(App Password)**가 필요합니다.
보안상의 이유로 Gmail은 일반 비밀번호 대신 앱 비밀번호 사용을 요구합니다.
❗ 중요: 앱 비밀번호 발급을 위해서는 Google 계정에 2단계 인증이 반드시 활성화되어 있어야 합니다.
📌 1단계: Google 계정 로그인 후 보안 메뉴로 이동
- Google 계정 페이지로 이동 후 로그인합니다.
- 로그인 후 왼쪽 메뉴에서 [보안] 탭을 클릭합니다.
📌 2단계: 2단계 인증 활성화 (필수)
- 보안 페이지에서 **「Google에 로그인」 → 「2단계 인증」**을 클릭합니다.
- 2단계 인증이 이미 활성화 되어 있다면, 이 단계는 넘어가셔도 됩니다.
📌 3단계: 앱 비밀번호 메뉴 접속하기
- 다시 「Google에 로그인」 섹션에서 **「앱 비밀번호」**를 클릭합니다.
📌 4단계: 앱 비밀번호 생성하기
- **「앱 선택」**에서 **「기타 (맞춤 이름)」**을 선택합니다.
- 아래 입력창에 용도를 적당히 적습니다. (예: python-report)
- 이름 입력 후 「생성」 버튼을 클릭합니다.
📌 5단계: 발급된 앱 비밀번호 복사하기
- 비밀번호가 팝업으로 표시됩니다. 지금 복사해두세요!
(한 번 닫으면 다시 볼 수 없고, 분실하면 재발급해야 합니다.)
- 이 비밀번호를 Python 코드 내의 EMAIL_PASSWORD 변수에 사용하면 됩니다.
EMAIL_ADDRESS = 'your-email@gmail.com' EMAIL_PASSWORD = '발급된 앱 비밀번호 입력'
⚠️ 앱 비밀번호 보관 시 주의사항
- 비밀번호는 절대 외부에 유출되지 않도록 안전하게 관리하세요.
- 비밀번호가 유출된 경우 즉시 삭제 후 재발급 받으세요.
- 사용하지 않을 때는 삭제하는 것을 권장합니다.
✅ 앱 비밀번호 삭제 방법 (참고)
- 「앱 비밀번호」 메뉴에서 발급된 비밀번호를 확인하고 삭제 버튼을 눌러 삭제할 수 있습니다.
- 삭제된 비밀번호는 다시 사용할 수 없습니다.
📌 마무리
이제 Python으로 리포트를 자동 생성하고,
매일 자동으로 이메일로 받을 수 있는 완전한 시스템을 구축했습니다.💡 응용 가능성:
- 투자자 또는 고객 대상 주식 정보 서비스
- 포트폴리오 관리용 개인 리포트 자동화
- 업무 협업용 공유 리포트 자동 배포
🔜 다음 글 예고
[5편] 한국 주식(KRX) 및 환율 데이터 자동 수집 및 리포트 생성
- 국내 주식 데이터를 활용한 리포트 작성
- pykrx 및 환율 API 활용법을 소개합니다.
🙋♂️ 피드백과 공유는 큰 힘이 됩니다!
도움이 되셨다면, 공감 / 댓글 / 스크랩 부탁드려요! 🙌
질문이나 제안도 언제나 환영합니다.'기술개발' 카테고리의 다른 글
📊 여러 종목 수익률 비교 리포트 만들기 (0) 2025.06.14 📊 파이썬으로 주간/월간 수익률 리포트 자동 생성하기 (4) 2025.06.14 📈 파이썬으로 주식 데이터 자동 분석 & 리포트 만드는 법(ft. pandas + matplotlib) (3) 2025.06.14 📘 Python x 금융 자동화 시리즈 소개 (0) 2025.06.14