한양과학기술고등학교
에듀테크 프로젝트 대시보드
이메일 전송 원리 (SMTP & MX 레코드)
✉️ 메일 작성
클라이언트
보내는 사람
받는 사람
제목
📤 보내기
초기화
SMTP
는 발신 서버가 수신 서버로 메일을
릴레이(중계)
하는 텍스트 기반 프로토콜입니다. 도착 후 실제 "읽기"는 IMAP/POP3가 담당합니다.
🌐 전송 경로
① 발신 서버
↓
② DNS에 MX 질의
↓
③ MX 레코드 응답
↓
④ 수신 서버 연결(25)
↓
⑤ HELO/MAIL/RCPT/DATA
↓
⑥ 수신함 저장
MX 레코드는
우선순위(priority) 숫자가 낮을수록 먼저
시도됩니다. 1순위 서버가 죽어있으면 2순위로 자동 폴백합니다.
📬 example.com 수신함
서버
아직 도착한 메일이 없습니다. 왼쪽에서 "보내기"를 눌러보세요.
📥 IMAP vs POP3
IMAP (기본)
POP3
메일이
서버에 그대로 보관
되고, 폰·PC·태블릿에서 동시에 같은 수신함(읽음 상태 포함)을 봅니다.
📋 실제 SMTP 대화 로그
실시간
// 아직 전송 기록 없음...
🔌 관련 포트 번호
포트
용도
25
서버 ↔ 서버 릴레이 (전통적 SMTP)
587
메일 클라이언트 제출 + STARTTLS
465
SMTPS (처음부터 TLS로 암호화)
993
IMAPS (TLS 암호화 IMAP)
995
POP3S (TLS 암호화 POP3)
오늘날 이메일 앱(Gmail, Outlook)은 대부분
587
번으로 보내고,
993
번으로 받아옵니다. 25번은 이제 서버끼리만 통신할 때 씁니다 (스팸 방지를 위해 ISP들이 가정용 회선의 25번을 자주 차단).
🛡️ 발신자 인증 3종
① SPF
(Sender Policy Framework)
도메인 DNS에 "이 IP들만 우리 메일을 보낼 수 있다"고 TXT 레코드로 명시.
② DKIM
(DomainKeys Identified Mail)
발신 서버가 개인키로 메일 헤더에 서명 → 수신 서버가 DNS의 공개키로 검증.
③ DMARC
SPF/DKIM 실패 시 어떻게 할지 정책 지정(격리·거부·통과) + 실패 보고서 수신.
셋 다 없으면 누구나
From: ceo@company.com
을 위조해 보낼 수 있습니다 — 피싱 메일의 핵심 취약점입니다.