Dev/Python Macro

일일 이메일 보고서 전송을 자동화하는 Python 스크립트

알 수 없는 사용자 2024. 6. 30. 13:16
반응형

일일 이메일 보고서 전송을 자동화하는 Python 스크립트

일일 이메일 보고서를 자동화하는 Python 스크립트를 작성하려면 몇 가지 단계를 따르면 됩니다. 여기서는 Gmail을 기반으로 예를 들어 설명하겠습니다.

1. 필요한 Python 라이브러리 설치:

  • smtplib: 이메일을 보내기 위한 라이브러리
  • email: 이메일 메시지를 생성하기 위한 라이브러리
  • datetime: 현재 날짜 및 시간을 가져오기 위한 라이브러리

2. Gmail 계정 설정:

  • Gmail 계정의 보안 설정에서 "보안 수준이 낮은 앱의 액세스"를 허용해야 합니다.

3. Python 스크립트 작성:

  • 이메일 보내기 기능을 포함한 Python 스크립트를 작성합니다.
  • 필요한 보고서를 생성하고 이메일에 첨부할 수 있도록 스크립트를 작성합니다.

예를 들어, 다음과 같은 스크립트를 사용할 수 있습니다:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime

# 보고서 내용 생성 함수
def generate_daily_report():
    # 여기에 보고서 생성 로직을 추가하세요.
    return "일일 보고서 내용"

# SMTP 서버 설정
smtp_server = 'smtp.gmail.com'
smtp_port = 587

# 보내는 사람 이메일 주소와 비밀번호
sender_email = 'your_email@gmail.com'
sender_password = 'your_password'

# 받는 사람 이메일 주소
receiver_email = 'recipient_email@example.com'

# 이메일 메시지 생성
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = f'일일 보고서 - {datetime.now().strftime("%Y-%m-%d")}'

# 보고서 내용 생성
report_content = generate_daily_report()

# 이메일 본문 추가
msg.attach(MIMEText(report_content, 'plain'))

# SMTP 서버 연결 및 이메일 보내기
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(sender_email, sender_password)
    text = msg.as_string()
    server.sendmail(sender_email, receiver_email, text)
    server.quit()
    print('이메일 보내기 성공!')
except Exception as e:
    print(f'이메일 보내기 실패: {e}')

4. 스케줄링 설정:

  • cron이나 sched와 같은 도구를 사용하여 스크립트를 일정한 시간에 실행하도록 설정합니다.

이것으로 Python 스크립트를 사용하여 일일 이메일 보고서를 자동화할 수 있습니다.

키워드: Python, 이메일, 자동화, 보고서, Gmail, 스크립트, SMTP, 보안, 스케줄링

글을 요약하는 키워드: Python, 이메일, 자동화, 보고서, Gmail, SMTP, 스케줄링, 보안, 스크립트, cron, sched

반응형