메일링 관련 개발업무를 맡으면서 smtp 관련 공부를 하다가, smtp.starttls()를 사용하는 이유가 궁금해졌다.
* SMTP(Simple Mail Transfer Protocol)
인터넷에서 이메일을 전송하기 위한 표준 프로토콜
이메일 클라이언트(ex- Outlook/Gmail)가 이메일 서버와 통신하여 메세지를 보내는 방식
기본적으로 텍스트 형식의 데이터를 주고 받기에 중간에서 데이터를 가로채거나 조작하는 것이 상대적으로 쉬움!
-> 이러한 이유로 smtp.starttls()를 사용하는데, 그 전에 TLS 개념부터 살펴보고 갑시다!
* TLS(Transport Layer Security) ?
* smtp.starttls()의 역할 ?
* 왜 smtp.starttls()를 사용해야 하는가?
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# SMTP 서버 정보
smtp_server = "smtp.example.com"
port = 587 # TLS 사용 시 일반적으로 587 포트를 사용합니다.
login = "your_email@example.com"
password = "your_password"
# 이메일 내용 작성
msg = MIMEMultipart()
msg['From'] = login
msg['To'] = "recipient@example.com"
msg['Subject'] = "Test Email"
body = "This is a test email."
msg.attach(MIMEText(body, 'plain'))
# SMTP 서버에 연결하고 이메일 보내기
with smtplib.SMTP(smtp_server, port) as server:
server.starttls() # TLS(암호화) 시작
server.login(login, password) # 로그인
server.sendmail(login, "recipient@example.com", msg.as_string()) # 이메일 전송