주기적으로 이메일을 보내는 방법
회사에서 매일, 매주 또는 매월 특정 시간에 이메일을 보내야 하는 경우, 이를 자동화할 수 있다면 얼마나 좋을까요?
파이썬의 schedule
패키지를 사용하면 특정 시간에 반복적으로 작업을 수행하는 프로그램을 만들 수 있습니다.
컴퓨터에 schedule 패키지를 설치하려면 터미널에서 다음 명령어를 실행하면 됩니다.
pip install schedule
이번 수업에서는 파이썬을 사용해 주기적인 이메일을 자동으로 보내는 방법을 배워보겠습니다.
주기적인 이메일을 보내기 위한 파이썬 패키지
schedule 패키지와 smtplib 패키지를 함께 사용하면, 특정 시간에 이메일을 보내는 작업을 자동화할 수 있습니다.
간단한 파이썬 코드 예시
다음은 매일 오전 9시에 이메일을 자동으로 보내는 코드 예시입니다.
import schedule import time import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_email(): # 발신자와 수신자 정보 설정 sender_email = "your_email@example.com" receiver_email = "receiver@example.com" password = "your_password" # 이메일 제목과 본문 작성 subject = "일일 보고서" body = "안녕하세요,\n\n오늘의 일일 보고서를 보내드립니다.\n\n감사합니다." # MIME 설정 msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) # 이메일 전송 try: server = smtplib.SMTP('smtp.example.com', 587) # SMTP 서버와 포트 번호 설정 server.starttls() # TLS 보안 시작 server.login(sender_email, password) # 로그인 server.sendmail(sender_email, receiver_email, msg.as_string()) # 이메일 전송 print("이메일이 성공적으로 발송되었습니다!") except Exception as e: print(f"이메일 발송 중 에러 발생: {e}") finally: server.quit() # 서버 연결 종료 # 매일 오전 9시에 이메일 전송 schedule.every().day.at("09:00").do(send_email) # 스케줄러 실행 while True: schedule.run_pending() time.sleep(1)
코드 설명
1. Schedule 패키지로 시간 설정
schedule 패키지를 사용하여 특정 시간에 send_email
함수를 실행하도록 설정합니다.
위 코드 예시는 매일 오전 9시에 이메일이 전송되도록 schedule.every().day.at("09:00").do(send_email)
와 같이 코드를 작성했습니다.
-
every()
: 스케줄러를 설정 -
day.at("09:00")
: 매일 오전 9시에 실행 -
do(send_email)
:send_email
함수 실행
2. 스케줄러 실행
while True: schedule.run_pending() time.sleep(1)
마지막으로, while True
루프를 사용해 스케줄러가 계속 작동하도록 합니다.
schedule.run_pending()
메서드는 예약된 작업이 있는지 확인하고, 실행할 작업이 있다면 실행합니다.
time.sleep(1)
은 CPU 자원을 낭비하지 않도록 1초에 한 번씩만 확인하게 합니다.
이와 같이 schedule
과 smtplib
를 함께 활용하면 주기적인 이메일 발송 작업을 프로그램으로 처리하여, 반복적인 이메일 업무를 자동화할 수 있습니다.
참고 : 본 수업에서는 무분별한 이메일 스케쥴링을 방지하기 위해 코드 예시만 제공하며, 코드프렌즈 프로젝트에서 주기적으로 이메일을 발송하는 파이썬 프로그램을 만들고 실생활에 활용하실 수 있습니다.
주기적으로 이메일을 보내기 위해 파이썬에서 사용할 수 있는 패키지는 무엇인가요?
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말