✅ SMTP?
SMTP (Simple Mail Transfer Protocol)는 이메일을 전송 하기 위해 사용되는 표준 통신 프로토콜
인터넷 상에서 이메일 클라이언트 ↔ 메일 서버 ↔ 수신자 메일 서버 간에 텍스트 기반 명령어 를 통해 메시지를 전송합니다.
📌 SMTP의 역할
이메일 작성자 → 서버 전송 (Client to Server)
이메일 서버 → 수신자 서버 전송 (Server to Server)
전송만 가능 , 수신은 불가능 (수신은 POP3 또는 IMAP 프로토콜이 담당)
📦 SMTP 흐름 요약
https://www.youtube.com/watch?v=96inHerdQhA&list=PLVsNizTWUw7HAcyW6bma7trGJfiTSDA44&index=51
[보낸 사람]
↓ SMTP
[보낸 사람 메일 서버]
↓ SMTP
[받는 사람 메일 서버]
↓ IMAP 또는 POP3
[받는 사람]
✅ SMTP 기본 포트
포트 용도 설명 25 기본 SMTP 포트 서버 간 메일 전송 (많이 차단됨) 465 SMTP over SSL (암호화) 구식이나 일부 서비스에서 사용 587 SMTP with STARTTLS ✅ 현재 권장되는 전송 방식
📄 SMTP 주요 명령어 (명령 기반 프로토콜)
명령어 설명 HELO
/ EHLO
클라이언트가 서버에게 자신을 소개 MAIL FROM:
발신자 이메일 주소 RCPT TO:
수신자 이메일 주소 DATA
본문 시작 (제목, 본문 등 포함) QUIT
연결 종료
SMTP는 사람이 타이핑할 수도 있을 정도로 단순한 텍스트 프로토콜입니다.
🔐 SMTP 보안 방식
SMTP는 원래 암호화되지 않은 상태 로 설계되었기 때문에, 현대에서는 보안 강화가 필요합니다.
보안방식 설명 STARTTLS 일반 연결을 TLS로 승격 (587번 포트에서 사용) SMTPS (SSL) 암호화된 SMTP (465번 포트) 인증 필요 (AUTH) 대부분의 SMTP 서버는 사용자 인증 필수
🛠 SMTP 클라이언트 구성 요소 (개발 시)
SMTP 서버 주소 : ex) smtp.gmail.com
, smtp.naver.com
포트 번호 : 보통 587 (STARTTLS) 또는 465 (SSL)
이메일 계정 정보 : 인증을 위한 ID / 앱 비밀번호
TLS/SSL 설정 : 암호화 전송 필요
보낸 사람, 받는 사람, 제목, 본문, 첨부파일 등
📫 SMTP와 관련된 주요 용어
용어 설명 MUA (Mail User Agent) 이메일 클라이언트 (ex. Outlook, Gmail 앱 등) MTA (Mail Transfer Agent) 메일 전송 서버 (SMTP 서버) MDA (Mail Delivery Agent) 메일 수신 및 보관 서버 (POP3/IMAP 서버)
✅ POP3란?
POP3 (Post Office Protocol version 3)는 원격 메일 서버에 저장된 이메일을 다운로드해서 로컬에 저장하는 수신 프로토콜 입니다.
SMTP 가 “이메일을 보내는” 프로토콜이라면
POP3 는 “이메일을 받아오는” 데 사용됩니다.
📦 POP3 기본 특징
항목 설명 프로토콜 목적 메일 수신 (다운로드) 기본 포트 110
(일반), 995
(SSL)메시지 저장 방식 메일을 로컬로 다운로드하고 서버에서 삭제 (기본 동작) 연결 방식 단방향 (서버 → 클라이언트) 프로토콜 상태 상태 유지 없음 (Stateless) 대안 프로토콜 IMAP (보다 동기화 중심)
📥 POP3 동작 흐름
메일 클라이언트(Outlook, Thunderbird 등)가 POP3 서버에 연결
사용자 인증 (ID/PW)
서버에 저장된 메일을 다운로드
다운로드 후 서버에서 메일 삭제 (옵션: 서버에 복사본 유지 가능)
연결 종료
📄 POP3 주요 명령어
POP3는 텍스트 기반 명령어 로 동작합니다 (Telnet 등으로 직접 테스트 가능).
명령어 설명 USER username
사용자 이름 입력 PASS password
비밀번호 입력 STAT
메시지 개수, 전체 크기 확인 LIST
메시지 목록 확인 RETR n
n번째 메시지 다운로드 DELE n
n번째 메시지 삭제 요청 QUIT
연결 종료 및 삭제 적용
🔐 POP3 포트 및 암호화
포트 설명 110 일반 POP3 (암호화 없음) 995 ✅ POP3 over SSL (보안 연결)
🆚 POP3 vs IMAP
항목 POP3 IMAP 메일 저장 위치 클라이언트 (로컬) 서버 (중앙 저장) 디바이스 동기화 ❌ 불가능 ✅ 가능 폴더 지원 ❌ 없음 ✅ 있음 서버에서 삭제 기본적으로 삭제 기본적으로 유지 사용 대상 단일 장치에서 메일 확인 여러 기기에서 메일 동기화
POP3는 단일 장치 기반 , IMAP은 클라우드 기반 메일 관리 에 더 적합합니다.
📧 실제 메일 서비스의 POP3 설정 예시
항목 값 서버 주소 pop.gmail.com
포트 995
보안 SSL 필수 인증 필요 ✅ ID, 앱 비밀번호 필요
설정 경로: Gmail 설정 → 전달 및 POP/IMAP → POP 사용 설정
📧 POP3를 사용할 수 있는 클라이언트/환경
데스크탑: Outlook, Thunderbird, Windows Mail
모바일: 대부분의 이메일 앱에서 설정 가능
.NET 또는 다른 언어에서 직접 구현 가능 (MailKit
, OpenPop.NET
등 라이브러리 사용)
📌 POP3 사용 시 주의사항
항목 설명 ✅ 서버 저장 유무 설정 대부분 클라이언트에서 “서버에 복사본 유지” 옵션 있음 ❌ 여러 기기 동시 사용 어려움 한 번 내려받으면 다른 기기에서 확인 어려움 🔐 보안 필수 항상 SSL 포트를 사용해야 함 (995) 🔑 앱 비밀번호 사용 Gmail/Naver 등은 앱 비밀번호 요구
📚 정리 요약
항목 POP3 요약 목적 메일 수신 (다운로드 방식) 특징 클라이언트 중심, 단방향 기본 포트 110 (일반), 995 (SSL) 대체 프로토콜 IMAP (동기화 중심) 적합한 경우 단일 디바이스, 오프라인 사용 중심 환경
📫 우분투 메일서버 구축 추가 자료 동영상
✅ 우분투 Postfix 설치
Sendmail은 복잡하고 보안에 취약해서, 보통은 Postfix 를 많이 사용
sudo apt update
sudo apt install postfix
sudo apt install mailutils
Postfix가 설치되면
설정
/etc/postfix/main.cf
포트 변경
sudo vim /etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - y - - smtpd
3512 inet n - y - - smtpd
# 25번(smtp) 포트를 유지하면서 3512 포트를 추가