Guidelines

주기적으둜 이메일을 λ³΄λ‚΄λŠ” 방법

νšŒμ‚¬μ—μ„œ 맀일, 맀주 λ˜λŠ” 맀월 νŠΉμ • μ‹œκ°„μ— 이메일을 보내야 ν•˜λŠ” 경우, 이λ₯Ό μžλ™ν™”ν•  수 μžˆλ‹€λ©΄ μ–Όλ§ˆλ‚˜ μ’‹μ„κΉŒμš”?

파이썬의 schedule νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•˜λ©΄ νŠΉμ • μ‹œκ°„μ— 반볡적으둜 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

컴퓨터에 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 λ£¨ν”„λ‘œ μŠ€μΌ€μ€„λŸ¬ μ‹€ν–‰
while True: schedule.run_pending() time.sleep(1)

λ§ˆμ§€λ§‰μœΌλ‘œ, while True 루프λ₯Ό μ‚¬μš©ν•΄ μŠ€μΌ€μ€„λŸ¬κ°€ 계속 μž‘λ™ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

schedule.run_pending() λ©”μ„œλ“œλŠ” μ˜ˆμ•½λœ μž‘μ—…μ΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , μ‹€ν–‰ν•  μž‘μ—…μ΄ μžˆλ‹€λ©΄ μ‹€ν–‰ν•©λ‹ˆλ‹€.

time.sleep(1)은 CPU μžμ›μ„ λ‚­λΉ„ν•˜μ§€ μ•Šλ„λ‘ 1μ΄ˆμ— ν•œ λ²ˆμ”©λ§Œ ν™•μΈν•˜κ²Œ ν•©λ‹ˆλ‹€.


이와 같이 scheduleκ³Ό smtplibλ₯Ό ν•¨κ»˜ ν™œμš©ν•˜λ©΄ 주기적인 이메일 λ°œμ†‘ μž‘μ—…μ„ ν”„λ‘œκ·Έλž¨μœΌλ‘œ μ²˜λ¦¬ν•˜μ—¬, 반볡적인 이메일 업무λ₯Ό μžλ™ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


μ°Έκ³  : λ³Έ μˆ˜μ—…μ—μ„œλŠ” λ¬΄λΆ„λ³„ν•œ 이메일 μŠ€μΌ€μ₯΄λ§μ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ½”λ“œ μ˜ˆμ‹œλ§Œ μ œκ³΅ν•˜λ©°, μ½”λ“œν”„λ Œμ¦ˆ ν”„λ‘œμ νŠΈμ—μ„œ 주기적으둜 이메일을 λ°œμ†‘ν•˜λŠ” 파이썬 ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€κ³  μ‹€μƒν™œμ— ν™œμš©ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

주기적으둜 이메일을 보내기 μœ„ν•΄ νŒŒμ΄μ¬μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” νŒ¨ν‚€μ§€λŠ” λ¬΄μ—‡μΈκ°€μš”?

νŒŒμ΄μ¬μ—μ„œ 주기적으둜 μž‘μ—…μ„ μ‹€ν–‰ν•  λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” νŒ¨ν‚€μ§€λŠ” μž…λ‹ˆλ‹€.
numpy
pandas
schedule
matplotlib

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help