본문 바로가기
Dev/Python Macro

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

by 하양동백 2024. 6. 30.

목차

    일일 이메일 보고서 전송을 자동화하는 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

    반응형

    댓글