본문 바로가기

Python으로 일일 이메일 보고서 전송 자동화 하는 방법

액트 2024. 7. 9.

매일 반복되는 업무를 자동화하는 방법에 대해 소개하겠습니다. 이번 글에서는 일일 이메일 보고서 전송하는 것을 자동화해보겠습니다.  Python을 사용하면 이를 간편하게 설정할 수 있습니다. 그럼 Gmail을 이용해 Python 스크립트로 일일 이메일 보고서를 자동화하는 방법을 단계별로 설명하겠습니다.

준비물

  1. Google 계정: 보고서를 보낼 Gmail 계정이 필요합니다.
  2. Google 계정 보안 설정: Google 계정의 "보안 수준이 낮은 앱의 액세스"를 허용해야 합니다. 이는 Google 계정 설정에서 설정할 수 있습니다.

Python 스크립트 작성

먼저, Gmail을 사용해 이메일을 보내는 Python 스크립트를 작성합니다. smtplib 모듈을 사용하여 SMTP 프로토콜을 통해 이메일을 전송합니다.

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

def send_email():
    # Gmail 계정 설정
    gmail_user = 'your-email@gmail.com'  # 보내는 사람 이메일 주소
    gmail_password = 'your-password'    # Gmail 앱 비밀번호
    
    # 수신자 이메일 주소 설정
    to = 'recipient@example.com'  # 받는 사람 이메일 주소
    
    # 이메일 내용 작성
    msg = MIMEMultipart()
    msg['From'] = gmail_user
    msg['To'] = to
    msg['Subject'] = '일일 보고서 ' + datetime.datetime.now().strftime('%Y-%m-%d')
    
    body = """
    여기에 보고서 내용을 작성합니다.
    이메일 내용을 자유롭게 포맷팅하세요.
    """
    msg.attach(MIMEText(body, 'plain'))
    
    # Gmail SMTP 서버 연결 및 이메일 전송
    try:
        server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
        server.ehlo()
        server.login(gmail_user, gmail_password)
        server.sendmail(gmail_user, to, msg.as_string())
        server.close()

        print('이메일을 성공적으로 보냈습니다.')
    except Exception as e:
        print(f'이메일 보내기 실패: {str(e)}')

if __name__ == '__main__':
    send_email()

설정 방법

  1. Gmail 계정 설정: 스크립트 상단의 gmail_user와 gmail_password 변수에 자신의 Gmail 이메일 주소와 앱 비밀번호를 입력하세요. 앱 비밀번호는 Google 계정 설정에서 생성할 수 있습니다.
  2. 이메일 내용 작성: body 변수에 보고서의 내용을 작성하세요. 필요에 따라 HTML 포맷을 사용하거나, 첨부 파일을 추가할 수도 있습니다.
  3. SMTP 서버 설정: Gmail의 경우 smtp.gmail.com 서버를 사용하고, 포트는 465를 SSL을 사용하여 연결합니다. 다른 이메일 서비스를 사용할 경우 해당 서비스의 SMTP 서버와 포트를 참조하세요.
  4. 일정 주기로 실행: 이 스크립트를 매일 특정 시간에 실행하려면, cron(리눅스) 또는 Task Scheduler(Windows) 등을 사용하여 스크립트를 정기적으로 실행하도록 예약합니다.

추가 팁

  • HTML 이메일: 이메일 내용을 HTML 포맷으로 작성하고 싶다면, MIMEText를 MIMEText(body, 'html')로 변경하면 됩니다.
  • 첨부 파일: 이메일에 파일을 첨부하고 싶다면, email.mime.application 모듈을 사용해 파일을 추가할 수 있습니다.

결론

Python을 활용해 일일 이메일 보고서 전송을 자동화하면 시간과 노력을 절약할 수 있습니다. 위의 간단한 스크립트와 설정 방법을 따라 하면 손쉽게 자동화 시스템을 구축할 수 있습니다. 업무 효율성을 높이기 위해 오늘 바로 시도해 보세요!

여기까지 일일 이메일 보고서 전송 자동화에 대한 모든 내용을 다뤘습니다. 질문이나 추가 도움이 필요하다면 댓글로 남겨주세요. 도움이 되셨다면 이 글을 공유하고, 더 많은 유용한 팁을 위해 구독해 주세요!

댓글