Guidelines

이메일 λ©”μ‹œμ§€ 포맷과 MIME

이메일은 λ‹¨μˆœνžˆ ν…μŠ€νŠΈλ§Œμ„ μ „μ†‘ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, λ©”μ‹œμ§€λ₯Ό λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ ν¬λ§·νŒ…(Formatting)ν•˜μ—¬ 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.

이 κ³Όμ •μ—μ„œ MIMEμ΄λΌλŠ” 정보 식별 ν‘œμ€€μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

MIME은 Multipurpose Internet Mail Extensions의 μ•½μžλ‘œ, 이메일에 μ—¬λŸ¬ ν˜•μ‹μ˜ 데이터λ₯Ό 포함할 수 μžˆλ„λ‘ ν•˜λŠ” ν‘œμ€€μž…λ‹ˆλ‹€.

이번 μˆ˜μ—…μ—μ„œλŠ” 이메일 λ©”μ‹œμ§€μ˜ κΈ°λ³Έ ꡬ쑰와 ν•¨κ»˜ MIME ν˜•μ‹μ„ ν™œμš©ν•œ 이메일 μž‘μ„±λ²•μ„ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.


이메일 λ©”μ‹œμ§€μ˜ ꡬ쑰

이메일은 크게 헀더(Header)와 λ³Έλ¬Έ(Body) 두 λΆ€λΆ„μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.


헀더

ν—€λ”λŠ” λ°œμ‹ μž, μˆ˜μ‹ μž, 제λͺ©κ³Ό 같은 μ΄λ©”μΌμ˜ κΈ°λ³Έ 정보λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

μ£Όμš” 헀더 ν•­λͺ©μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • From : λ°œμ‹ μž 이메일 μ£Όμ†Œ

  • To : μˆ˜μ‹ μž 이메일 μ£Όμ†Œ

  • Subject : 이메일 제λͺ©

  • Date : 이메일 λ°œμ†‘ μΌμ‹œ

  • Cc : μ°Έμ‘° 이메일 μ£Όμ†Œ

  • Bcc : μˆ¨μ€ μ°Έμ‘° 이메일 μ£Όμ†Œ


λ³Έλ¬Έ

본문은 μ΄λ©”μΌμ˜ μ‹€μ œ λ‚΄μš©μ„ λ‹΄μŠ΅λ‹ˆλ‹€.

ν…μŠ€νŠΈ, 이미지, 링크, HTML 파일 λ“± λ‹€μ–‘ν•œ μš”μ†Œκ°€ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.

일반적으둜 이메일 본문은 text/plain(일반 ν…μŠ€νŠΈ) 및 text/html(HTML ν˜•μ‹)으둜 μž‘μ„±λ©λ‹ˆλ‹€.


이메일에 λ‹€μ–‘ν•œ ν˜•μ‹μ„ λ”ν•˜λŠ” MIME

MIME은 이메일에 μ—¬λŸ¬ ν˜•μ‹μ˜ 데이터λ₯Ό 포함할 수 μžˆλ„λ‘ ν•˜λŠ” 정보 식별 ν‘œμ€€μž…λ‹ˆλ‹€.

μ›λž˜ 이메일은 ν…μŠ€νŠΈ ν˜•μ‹λ§Œ μ§€μ›ν–ˆμ§€λ§Œ, MIME 덕뢄에 이미지, μ˜€λ””μ˜€, λΉ„λ””μ˜€ 등을 이메일에 ν¬ν•¨ν•˜κ±°λ‚˜ νŒŒμΌμ„ 첨뢀할 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


MIME의 μ£Όμš” ꡬ성 μš”μ†Œ

  • Content-Type : 이메일 λ³Έλ¬Έμ΄λ‚˜ 첨뢀 파일의 μœ ν˜•μ„ μ •μ˜ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ text/plain은 일반 ν…μŠ€νŠΈ, text/html은 HTML ν˜•μ‹μ˜ ν…μŠ€νŠΈλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

  • Content-Transfer-Encoding : 이메일 λ‚΄μš©μ΄ 인코딩(μ•”ν˜Έν™”)된 방식을 μ •μ˜ν•©λ‹ˆλ‹€. 주둜 base64λ‚˜ quoted-printable 방식을 μ‚¬μš©ν•©λ‹ˆλ‹€.

  • Boundary : μ—¬λŸ¬ MIME 파트λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•œ κ΅¬λΆ„μžμž…λ‹ˆλ‹€. 이메일 본문에 μ—¬λŸ¬ 가지 ν˜•μ‹μ΄ 포함될 λ•Œ 각각의 파트λ₯Ό κ΅¬λΆ„ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.


MIME ν˜•μ‹μ„ μ‚¬μš©ν•œ 이메일 μž‘μ„±ν•˜κΈ°

이제 MIME ν˜•μ‹μ„ μ‚¬μš©ν•˜μ—¬ κ°„λ‹¨ν•œ HTML 이메일을 μž‘μ„±ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ•„λž˜μ™€ 같이 HTML을 ν™œμš©ν•˜λ©΄ 이메일을 λ‹€μ±„λ‘­κ²Œ κΎΈλ°€ 수 μžˆμŠ΅λ‹ˆλ‹€.

MIME ν˜•μ‹μ„ μ‚¬μš©ν•œ 이메일 μ˜ˆμ‹œ
# smtplib 라이브러리 뢈러였기 import smtplib # 이메일 라이브러리 뢈러였기 from email.mime.multipart import MIMEMultipart # 이메일 λ³Έλ¬Έ 라이브러리 뢈러였기 from email.mime.text import MIMEText # μ½”λ“œν”„λ Œμ¦ˆ κ°€μž… μ΄λ©”μΌλ§Œ μˆ˜μ‹  κ°€λŠ₯ receiver_email = "youremail@example.com" # λ°œμ‹ μž 이메일 μ„€μ • sender_email = "admin_email" sender_password = "admin_password" smtp_server = "smtp.gmail.com" port = 587 # 이메일 ꡬ성 msg = MIMEMultipart('alternative') # 이메일 제λͺ©, λ°œμ‹ μž, μˆ˜μ‹ μž μ„€μ • msg['Subject'] = "[μ½”λ“œν”„λ Œμ¦ˆ] μ•ˆλ…•ν•˜μ„Έμš”, μ½”λ“œν”„λ Œμ¦ˆμž…λ‹ˆλ‹€." msg['From'] = sender_email msg['To'] = receiver_email # HTML ν˜•μ‹μ˜ 이메일 λ³Έλ¬Έ html = """ <html> <body> <h1>HTML 이메일</h1> <p> <span style="color:blue;">이메일</span> λ°œμ†‘μ„ <b>μ„±κ³΅μ μœΌλ‘œ</b>μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€! </p> </body> </html> """ # MIME 파트 μΆ”κ°€ html_email = MIMEText(html, 'html') msg.attach(html_email) # SMTP μ„œλ²„ μ—°κ²° server = smtplib.SMTP(smtp_server, port) # TLS(이메일 μ•”ν˜Έν™”) μ—°κ²° server.starttls() # 이메일 둜그인 server.login(sender_email, sender_password) # 이메일 λ©”μ‹œμ§€λ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ text = msg.as_string() # 이메일 전솑 server.sendmail(sender_email, receiver_email, text) # SMTP μ„œλ²„ μ—°κ²° μ’…λ£Œ server.quit() print("이메일 전솑 μ™„λ£Œ! μˆ˜μ‹ ν•¨μ„ 확인해 μ£Όμ„Έμš”.")

μœ„ μ½”λ“œλŠ” κ°„λ‹¨ν•œ HTMLκ³Ό CSSλ₯Ό ν™œμš©ν•΄ 제λͺ©(h1)κ³Ό 단락(p)을 ν¬ν•¨ν•œ 이메일 본문을 μž‘μ„±ν•©λ‹ˆλ‹€.

νŠΉμ • κΈ€μžλ₯Ό νŒŒλž€μƒ‰μœΌλ‘œ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ span νƒœκ·Έμ™€ CSS color 속성을 μ‚¬μš©ν–ˆμœΌλ©°, ꡡ은 글씨λ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄ b νƒœκ·Έλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.


μ‹€μŠ΅

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

Mission
0 / 1

μ΄λ©”μΌμ˜ 본문은 였직 ν…μŠ€νŠΈλ§Œ 포함될 수 μžˆλ‹€.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result