한양과학기술고등학교

에듀테크 프로젝트 대시보드

이메일 전송 원리 (SMTP & MX 레코드)

✉️ 메일 작성 클라이언트
SMTP는 발신 서버가 수신 서버로 메일을 릴레이(중계)하는 텍스트 기반 프로토콜입니다. 도착 후 실제 "읽기"는 IMAP/POP3가 담당합니다.
🌐 전송 경로
① 발신 서버
↓
② DNS에 MX 질의
↓
③ MX 레코드 응답
↓
④ 수신 서버 연결(25)
↓
⑤ HELO/MAIL/RCPT/DATA
↓
⑥ 수신함 저장
MX 레코드는 우선순위(priority) 숫자가 낮을수록 먼저 시도됩니다. 1순위 서버가 죽어있으면 2순위로 자동 폴백합니다.
📬 example.com 수신함 서버
아직 도착한 메일이 없습니다. 왼쪽에서 "보내기"를 눌러보세요.

📥 IMAP vs POP3
메일이 서버에 그대로 보관되고, 폰·PC·태블릿에서 동시에 같은 수신함(읽음 상태 포함)을 봅니다.
📋 실제 SMTP 대화 로그 실시간
// 아직 전송 기록 없음...
🔌 관련 포트 번호
포트용도
25서버 ↔ 서버 릴레이 (전통적 SMTP)
587메일 클라이언트 제출 + STARTTLS
465SMTPS (처음부터 TLS로 암호화)
993IMAPS (TLS 암호화 IMAP)
995POP3S (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을 위조해 보낼 수 있습니다 — 피싱 메일의 핵심 취약점입니다.