SMTP, 우분투 Postfix

✅ 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 포트서버 간 메일 전송 (많이 차단됨)
465SMTP over SSL (암호화)구식이나 일부 서비스에서 사용
587SMTP 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 동작 흐름

  1. 메일 클라이언트(Outlook, Thunderbird 등)가 POP3 서버에 연결
  2. 사용자 인증 (ID/PW)
  3. 서버에 저장된 메일을 다운로드
  4. 다운로드 후 서버에서 메일 삭제 (옵션: 서버에 복사본 유지 가능)
  5. 연결 종료

📄 POP3 주요 명령어

POP3는 텍스트 기반 명령어로 동작합니다 (Telnet 등으로 직접 테스트 가능).

명령어설명
USER username사용자 이름 입력
PASS password비밀번호 입력
STAT메시지 개수, 전체 크기 확인
LIST메시지 목록 확인
RETR nn번째 메시지 다운로드
DELE nn번째 메시지 삭제 요청
QUIT연결 종료 및 삭제 적용

🔐 POP3 포트 및 암호화

포트설명
110일반 POP3 (암호화 없음)
995✅ POP3 over SSL (보안 연결)

🆚 POP3 vs IMAP

항목POP3IMAP
메일 저장 위치클라이언트 (로컬)서버 (중앙 저장)
디바이스 동기화❌ 불가능✅ 가능
폴더 지원❌ 없음✅ 있음
서버에서 삭제기본적으로 삭제기본적으로 유지
사용 대상단일 장치에서 메일 확인여러 기기에서 메일 동기화

POP3는 단일 장치 기반, IMAP은 클라우드 기반 메일 관리에 더 적합합니다.

📧 실제 메일 서비스의 POP3 설정 예시

  • Gmail 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 포트를 추가

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤