SMTP (Simple Mail Transfer Protocol) 기초
SMTP (단순 메일 전송 프로토콜)는 이메일을 한 서버에서 다른 서버로 보내는(발송) 데 사용되는 표준 통신 규약입니다. 사용자의 이메일 클라이언트가 메일을 보낼 때나, 서버들이 서로 메일을 교환할 때 사용됩니다.
1. 작동 원리: 메일 전송의 3단계
SMTP는 기본적으로 푸시(Push) 프로토콜이며, 발신자 서버에서 수신자 서버로 메일을 전달하는 3단계 과정을 거칩니다.
- 클라이언트(발신자) → 발신 SMTP 서버: 사용자가 이메일 클라이언트(아웃룩, Gmail 웹 등)에서 '보내기'를 누르면, 해당 메일은 사용자의 발신 SMTP 서버로 전송됩니다.
- 발신 SMTP 서버 → 수신 SMTP 서버 찾기: 발신 서버는 메일 주소의 도메인(예:
naver.com)을 보고 DNS의 MX 레코드를 조회하여 해당 도메인을 처리하는 수신 SMTP 서버의 주소를 찾습니다. - 발신 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 | 수신 및 다운로드 | 서버 메일을 클라이언트로 다운로드 |