김 컴퓨터


SMTP (Simple Mail Transfer Protocol) 기초

SMTP (단순 메일 전송 프로토콜)는 이메일을 한 서버에서 다른 서버로 보내는(발송) 데 사용되는 표준 통신 규약입니다. 사용자의 이메일 클라이언트가 메일을 보낼 때나, 서버들이 서로 메일을 교환할 때 사용됩니다.


1. 작동 원리: 메일 전송의 3단계

SMTP는 기본적으로 푸시(Push) 프로토콜이며, 발신자 서버에서 수신자 서버로 메일을 전달하는 3단계 과정을 거칩니다.

  1. 클라이언트(발신자) → 발신 SMTP 서버: 사용자가 이메일 클라이언트(아웃룩, Gmail 웹 등)에서 '보내기'를 누르면, 해당 메일은 사용자의 발신 SMTP 서버로 전송됩니다.
  2. 발신 SMTP 서버 → 수신 SMTP 서버 찾기: 발신 서버는 메일 주소의 도메인(예: naver.com)을 보고 DNS의 MX 레코드를 조회하여 해당 도메인을 처리하는 수신 SMTP 서버의 주소를 찾습니다.
  3. 발신 SMTP 서버 → 수신 SMTP 서버 전송: 발신 서버는 수신 서버와 직접 연결을 설정하고, 명령과 응답을 교환하며 메일을 전송합니다. 수신 서버는 이 메일을 받아 사용자 계정의 사서함에 저장합니다.

2. SMTP의 주요 특징

특징 설명
푸시 프로토콜 (Push Protocol) 발신자가 일방적으로 수신자에게 데이터를 밀어 넣는 방식입니다. (수신 프로토콜인 IMAP/POP3는 풀(Pull) 방식)
텍스트 기반 SMTP는 간단한 ASCII 텍스트 명령어를 사용합니다. (예: HELO, MAIL FROM, RCPT TO, DATA)
포트 번호 기본적으로 TCP 25번 포트를 사용하지만, 보안을 위해 암호화된 전송(SMTPS)에서는 주로 TCP 465번 또는 587번 포트를 사용합니다.
보안 취약점 초기 SMTP는 인증 절차가 없었기 때문에 스팸 메일 발송에 악용되기 쉬웠습니다. 현재는 SMTP-AUTH라는 인증 기능을 통해 발송자 인증을 요구합니다.

3. 이메일 3대 프로토콜 요약

프로토콜 역할 작동 방식
SMTP 발송 (Sending) 이메일을 서버 간에 전송
IMAP 수신 및 관리 서버에 보관된 메일을 동기화하여 접근
POP3 수신 및 다운로드 서버 메일을 클라이언트로 다운로드