Guidelines

파이썬 μ½”λ“œλ‘œ 이메일을 λ³΄λ‚΄λŠ” 방법

μžλ™μœΌλ‘œ 이메일을 λ³΄λ‚΄λŠ” κΈ°λŠ₯은 λ‹€μ–‘ν•œ μƒν™©μ—μ„œ μœ μš©ν•˜κ²Œ ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ ν¬λ‘€λ§ν•œ 데이터λ₯Ό 가곡해 μΌμ •ν•œ μ‹œκ°„μ— 리포트λ₯Ό λ°œμ†‘ν•˜κ±°λ‚˜, νŠΉμ • μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ μ•Œλ¦Ό 메일을 μžλ™μœΌλ‘œ λ°œμ†‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이번 μˆ˜μ—…μ—μ„œλŠ” 파이썬의 smtplib 라이브러리λ₯Ό μ‚¬μš©ν•΄ κ°„λ‹¨ν•œ 이메일을 λ³΄λ‚΄λŠ” 방법을 λ°°μ›Œλ³΄κ² μŠ΅λ‹ˆλ‹€.


κ°„λ‹¨ν•œ 이메일 λ°œμ†‘ μ½”λ“œ μ˜ˆμ‹œ

μ•„λž˜ μ½”λ“œλŠ” smtplibλ₯Ό μ‚¬μš©ν•΄ 이메일을 μ „μ†‘ν•˜λŠ” κ°„λ‹¨ν•œ μ˜ˆμ œμž…λ‹ˆλ‹€.

smtplibλ₯Ό μ‚¬μš©ν•œ κ°„λ‹¨ν•œ 이메일 전솑 μ˜ˆμ‹œ
# smtplib 라이브러리 뢈러였기 import smtplib # 이메일 ꡬ성을 μœ„ν•œ 라이브러리 뢈러였기 from email.mime.text import MIMEText # 이메일 λ³Έλ¬Έκ³Ό 제λͺ©μ„ κ΅¬μ„±ν•˜κΈ° μœ„ν•œ 라이브러리 뢈러였기 from email.mime.multipart import MIMEMultipart # λ°œμ‹ μž 정보 μ„€μ • sender_email = "your_email@example.com" password = "your_password" # μˆ˜μ‹ μž 정보 μ„€μ • receiver_email = "youremail@example.com" # 이메일 제λͺ©κ³Ό λ³Έλ¬Έ μž‘μ„± subject = "ν…ŒμŠ€νŠΈ 이메일" body = "μ•ˆλ…•ν•˜μ„Έμš”, 이 메일은 파이썬 smtplibλ₯Ό μ΄μš©ν•΄ λ³΄λ‚΄λŠ” ν…ŒμŠ€νŠΈ λ©”μΌμž…λ‹ˆλ‹€." # MIME μ„€μ • msg = MIMEMultipart() # λ°œμ‹ μž msg['From'] = sender_email # μˆ˜μ‹ μž msg['To'] = receiver_email # 제λͺ© msg['Subject'] = subject # λ³Έλ¬Έ μΆ”κ°€ msg.attach(MIMEText(body, 'plain')) # SMTP μ„œλ²„ μ—°κ²° 및 이메일 전솑 try: # SMTP μ„œλ²„μ™€ 포트 번호 μ„€μ • server = smtplib.SMTP('smtp.example.com', 587) # TLS λ³΄μ•ˆ μ‹œμž‘ server.starttls() # 둜그인 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() # μ„œλ²„ μ—°κ²° μ’…λ£Œ

μ½”λ“œ 상세 μ„€λͺ…

1. λ°œμ‹ μžμ™€ μˆ˜μ‹ μž 정보 μ„€μ •

μ½”λ“œμ˜ μ΄ˆλ°˜λΆ€μ—μ„œ λ°œμ‹ μžμ™€ μˆ˜μ‹ μžμ˜ 이메일 μ£Όμ†Œ, 그리고 λ°œμ‹ μžμ˜ 이메일 계정 λΉ„λ°€λ²ˆν˜Έλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

λ°œμ‹ μž 이메일과 λΉ„λ°€λ²ˆν˜ΈλŠ” SMTP μ„œλ²„μ— μ—°κ²°ν•˜μ—¬ 이메일을 μ „μ†‘ν•©λ‹ˆλ‹€.

λ°œμ‹ μžμ™€ μˆ˜μ‹ μž 정보 μ„€μ •
sender_email = "your_email@example.com" receiver_email = "receiver@example.com" password = "your_password"

2. 이메일 제λͺ©κ³Ό λ³Έλ¬Έ μž‘μ„±

μ΄λ©”μΌμ˜ 제λͺ©(subject)κ³Ό λ³Έλ¬Έ(body)을 μž‘μ„±ν•©λ‹ˆλ‹€.

본문은 κ°„λ‹¨ν•œ ν…μŠ€νŠΈλ‘œ κ΅¬μ„±λ˜μ–΄ 있으며, μ΄λŠ” MIMEText 객체둜 λ³€ν™˜λ˜μ–΄ 이메일에 μ²¨λΆ€λ©λ‹ˆλ‹€.

이메일 제λͺ©κ³Ό λ³Έλ¬Έ μž‘μ„±
subject = "ν…ŒμŠ€νŠΈ 이메일" body = "μ•ˆλ…•ν•˜μ„Έμš”, 이 메일은 파이썬 smtplibλ₯Ό μ΄μš©ν•΄ λ³΄λ‚΄λŠ” ν…ŒμŠ€νŠΈ λ©”μΌμž…λ‹ˆλ‹€."

이후, MIMEMultipart 객체λ₯Ό μ‚¬μš©ν•΄ μ΄λ©”μΌμ˜ 제λͺ©, λ³Έλ¬Έ, λ°œμ‹ μž, μˆ˜μ‹ μž 등을 ν•˜λ‚˜λ‘œ λ¬ΆμŠ΅λ‹ˆλ‹€.

MIME μ„€μ •
# 이메일 λ©”μ‹œμ§€λ₯Ό μœ„ν•œ μ»¨ν…Œμ΄λ„ˆ μ—­ν•  msg = MIMEMultipart() # λ°œμ‹ μž μ„€μ • msg['From'] = sender_email # μˆ˜μ‹ μž μ„€μ • msg['To'] = receiver_email # 이메일 제λͺ© μ„€μ • msg['Subject'] = subject # 이메일 λ³Έλ¬Έ μΆ”κ°€ msg.attach(MIMEText(body, 'plain'))

이 μ½”λ“œμ—μ„œ MIMEMultipart κ°μ²΄λŠ” 이메일을 κ΅¬μ„±ν•˜λŠ” λ‹€μ–‘ν•œ λΆ€λΆ„(예: 제λͺ©, λ³Έλ¬Έ, 첨뢀 파일 λ“±)을 ν•˜λ‚˜λ‘œ λ¬ΆμŠ΅λ‹ˆλ‹€.

MIMEText κ°μ²΄λŠ” μ΄λ©”μΌμ˜ 본문을 ν…μŠ€νŠΈλ‘œ ν‘œν˜„ν•˜λ©°, 'plain' μΈμžλŠ” ν…μŠ€νŠΈ ν˜•μ‹μ΄ 일반 ν…μŠ€νŠΈμž„μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.


3. SMTP μ„œλ²„ μ—°κ²° 및 이메일 전솑

SMTP μ„œλ²„ μ—°κ²°

SMTP('smtp.example.com', 587)λŠ” μ™ΈλΆ€μ˜ SMTP μ„œλ²„μ— μ—°κ²°ν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 587은 SMTP μ„œλ²„μ˜ 포트(Port) 번호둜, 이메일을 μ „μ†‘ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€.

포트(Port) : λ„€νŠΈμ›Œν¬μ—μ„œ ν”„λ‘œκ·Έλž¨μ΄ 톡신을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 번호


TLS(TLS)λŠ” λ¬΄μ—‡μΈκ°€μš”?

SMTP μ„œλ²„μ™€μ˜ 연결을 μ„€μ •ν•œ ν›„, TLS(Transport Layer Security)둜 λ³΄μ•ˆμ„ κ°•ν™”ν•©λ‹ˆλ‹€.

TLSλŠ” 이메일을 μ•”ν˜Έν™”ν•˜μ—¬ λ³΄μ•ˆμ„ κ°•ν™”ν•˜λŠ” ν”„λ‘œν† μ½œλ‘œ, 이메일 전솑 μ‹œ μ€‘μš”ν•œ 정보가 λ…ΈμΆœλ˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.

λ°œμ‹ μžμ˜ 이메일 κ³„μ •μœΌλ‘œ μ„œλ²„μ— λ‘œκ·ΈμΈν•œ ν›„, sendmail λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 이메일을 μ „μ†‘ν•©λ‹ˆλ‹€.

λͺ¨λ“  μž‘μ—…μ΄ λλ‚˜λ©΄ μ„œλ²„ 연결을 μ’…λ£Œν•©λ‹ˆλ‹€.

SMTP μ„œλ²„ μ—°κ²° 및 이메일 전솑
# SMTP μ„œλ²„ μ—°κ²° server = smtplib.SMTP('smtp.example.com', 587) # TLS λ³΄μ•ˆ μ‹œμž‘ server.starttls() # λ°œμ‹ μž κ³„μ •μœΌλ‘œ 둜그인 server.login(sender_email, password) # 이메일 전솑 server.sendmail(sender_email, receiver_email, msg.as_string())

μ‹€μŠ΅

μ½”λ“œ μ—λ””ν„°μ˜ μ‹€μŠ΅ μ½”λ“œμ—μ„œ receiver_email에 μ½”λ“œν”„λ Œμ¦ˆ κ°€μž… 이메일을 μž…λ ₯ν•˜κ±°λ‚˜ 잘 λ°˜μ˜λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , μ½”λ“œλ₯Ό μ‹€ν–‰ν•΄ λ³΄μ„Έμš”.

Mission
0 / 1

μ•„λž˜ λΉˆμΉΈμ— λ“€μ–΄κ°ˆ μ μ ˆν•œ λ‹¨μ–΄λŠ” λ¬΄μ—‡μΌκΉŒμš”?

SMTP μ„œλ²„μ˜ κΈ°λ³Έ 포트 λ²ˆν˜ΈλŠ” μž…λ‹ˆλ‹€.
567
587
555
589

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result