본문 바로가기

개발기술/기타

메일서버 도메인 싸이클

메일 서버의 전체 동작 방식은 메일 발송(Sending), 메일 전송(Transferring), 그리고 **메일 수신(Receiving)**의 3단계로 나뉩니다. 이를 통해 이메일이 작성된 사용자로부터 최종 수신자까지 전달됩니다. 

 

1. 메일 서버의 전체 동작 과정

(1) 메일 발송 (Mail Sending)

  • 사용자가 이메일 클라이언트(Outlook, Gmail 등)를 통해 이메일을 작성하고 "Send" 버튼을 누르면 시작됩니다.
  • 이 단계에서 사용하는 주요 프로토콜은 **SMTP (Simple Mail Transfer Protocol)**입니다.

과정

  1. 사용자가 메일 작성:
    • 메일 클라이언트에서 수신자 주소(To), 제목, 본문, 첨부파일 등을 작성.
    • 작성된 데이터를 SMTP 서버로 전송.
  2. SMTP 서버로 전송:
    • 클라이언트는 SMTP 프로토콜을 사용해 발송 요청을 메일 서버에 전달.
    • 클라이언트는 보통 포트 587(인증된 SMTP)이나 465(SSL 기반)를 사용.
  3. 발송 요청 처리:
    • SMTP 서버는 발신자의 인증(예: 계정명, 비밀번호)을 확인.
    • 메일 데이터(발신자, 수신자, 메일 내용)를 준비.

(2) 메일 전송 (Mail Transferring)

  • 발송된 이메일은 발신자의 SMTP 서버에서 수신자의 메일 서버로 전달됩니다.
  • 이 단계에서는 DNSSMTP가 중요한 역할을 합니다.

과정

  1. DNS 조회:
    • SMTP 서버는 수신자의 이메일 주소(예: user@example.com)에서 도메인(example.com) 부분을 추출.
    • 도메인의 MX(Mail Exchange) 레코드를 조회하여, 해당 메일 도메인을 처리하는 수신 메일 서버의 IP 주소를 확인.
  2. SMTP 서버 간 전송:
    • 발신 SMTP 서버는 수신 SMTP 서버로 메일 데이터를 전송.
    • 보안 강화를 위해 TLS/SSL 암호화가 적용될 수 있음.
  3. 대기/재시도 처리:
    • 수신 메일 서버가 일시적으로 응답하지 않을 경우, 발신 SMTP 서버는 메일을 **큐(queue)**에 저장하고 일정 시간 후 재시도.

(3) 메일 수신 (Mail Receiving)

  • 수신자의 메일 서버가 도착한 이메일을 처리하고, 사용자가 메일 클라이언트에서 확인할 수 있도록 준비합니다.
  • 이 단계에서는 POP3 또는 IMAP 프로토콜이 사용됩니다.

과정

  1. 수신 메일 저장:
    • 수신 SMTP 서버는 도착한 메일 데이터를 저장소(DB 또는 파일 시스템)에 저장.
    • 수신자의 계정 정보와 매칭하여 메일박스에 추가.
  2. 메일 클라이언트 요청:
    • 수신자는 자신의 메일 클라이언트를 통해 메일 확인 요청을 보냄.
    • 메일 클라이언트는 POP3 또는 IMAP을 사용해 서버에서 메일 데이터를 가져옴.
      • POP3: 메일을 로컬로 다운로드하고 서버에서 삭제(기본 동작).
      • IMAP: 서버에 메일을 유지하며 동기화(여러 기기에서 동일 상태 유지).
  3. 사용자 확인:
    • 클라이언트에서 메일 데이터를 로드하고, 사용자는 메일을 읽고, 회신하며 관리.

2. 메일 서버의 주요 구성 요소

(1) SMTP 서버

  • 이메일 발송 및 전송을 담당.
  • 주요 역할:
    • 클라이언트 요청을 받아 수신 SMTP 서버로 전달.
    • DNS 조회로 MX 레코드 확인.
    • TLS/SSL을 사용해 데이터 암호화.

(2) POP3/IMAP 서버

  • 이메일 수신 및 관리를 담당.
  • 주요 역할:
    • POP3: 메일을 다운로드하여 로컬에 저장.
    • IMAP: 메일을 서버에 유지하며 동기화.

(3) DNS 서버

  • 도메인의 MX 레코드를 조회하여 메일 전송 경로를 결정.

(4) 메일 저장소

  • 이메일 데이터를 저장.
  • 보통 데이터베이스 또는 파일 시스템으로 구성.

3. 메일 서버의 동작을 위한 프로토콜

프로토콜주요 역할사용 예

SMTP 메일 발송 및 전송 발신자 SMTP 서버 → 수신자 SMTP 서버
POP3 메일 다운로드 서버에서 메일을 로컬로 이동
IMAP 메일 동기화 및 서버 관리 클라이언트에서 서버와 실시간 동기화
DNS 수신 메일 서버의 MX 레코드 조회 도메인(example.com) → IP 주소
TLS/SSL 메일 전송 및 수신 시 데이터 암호화 SMTP, POP3, IMAP에서 보안 강화

4. 메일 서버의 동작 예시

  1. 발송자 A가 userA@gmail.com에서 userB@company.com으로 메일을 보냄:
    • 발송 클라이언트: A의 Gmail 클라이언트가 userA@gmail.com SMTP 서버에 메일 전달.
    • DNS 조회: Gmail SMTP 서버가 company.com 도메인의 MX 레코드를 조회.
    • 전송 과정: Gmail SMTP 서버 → company.com SMTP 서버로 메일 전달.
    • 수신 서버 처리: company.com의 SMTP 서버가 메일을 저장소에 저장.
    • 수신 클라이언트: B의 메일 클라이언트가 IMAP/POP3를 통해 메일을 가져옴.

5. 메일 서버의 확장 요소

  1. 스팸 필터링
    • SPF, DKIM, DMARC를 통해 발신자 인증.
    • 의심스러운 메일은 스팸 폴더로 이동.
  2. 보안
    • TLS/SSL을 통해 메일 전송 구간 암호화.
    • 메일 서버의 인증 정책 강화(예: OAuth2).
  3. 대량 메일 발송 지원
    • 큐잉(queueing) 시스템과 멀티스레드 엔진으로 대량 메일 송신 처리.

 

'개발기술 > 기타' 카테고리의 다른 글

AI개발자와 백엔드 개발자  (1) 2025.01.17