개발 블로그

SMTP 란? 메일 시스템 동작 방식 본문

컴퓨터공학

SMTP 란? 메일 시스템 동작 방식

daehwan2 2024. 1. 28. 22:29

그룹 웨어 사이드 프로젝트를 현재 진행중이다.

곧 다음주에 자체 메일 시스템을 개발해야하는데 메일 시스템에 대한 개념이 아무 것도 없어 공부 후 정리해본다.

메일 시스템에 대한 전반적인 이해가 필요하신 분들이 읽고 도움이 되면 좋겠다.

SMTP 란?

Simple Mail Transfer Protocol 의 약자로, 흔히 말하는 이메일을 전송할 때 사용되는 프로토콜이다.

 

프로토콜은 서로 약속한 규칙을 말하며, 그러므로 SMTP 는 쉽게 말하면 메일을 전송하기 위한 약속을 정해놓은 것이라고 말할 수 있다.

 

메일 시스템의 구조는 다음과 같다.

메일 시스템 구조

 

user agent 는 메일을 전송하고 받을 수 있는 사용자를 말한다.

mail server 는 흔히 SMTP 서버로 메일 전송하고 받을 수 있는 서버를 말한다.

 

mail server 는 어떤식으로 구성되는지 아래 그림에서 보겠다.

mail server 의 구조

mail server 는 출력 메시지 큐 ( outgoing message queue ) 와 mailbox 로 구성되어 있다.

각각의 역할과 의미는 아래 이메일 전송과정에서 이해할 수 있다.

 

이메일 전송 과정

  1. 송신자 user agent 에서의 메일 작성 후 mail server로 전달
  2. 송신자 메일 서버의 출력 메시지 큐 ( outgoing message queue ) 에 저장
  3. 수신자 메일 서버로 전송
  4. 전송 불가시 ( 수신자의 user agent SMTP 서버가 꺼져있다거나 고장난 경우 ) 30분 단위로 재전송 시도, 정해진 기간동안 전송 불가시 중단 및 송신자에게 통보 -> 메일 서버의 큐가 필요한 이유
  5. 수신자 메일 서버의 수신자 메일박스 ( mailbox ) 에 저장
  6. 수신자 user agent 에서 메일 서버의 메일박스의 메일 읽기 및 관리하기

위 과정을 그림으로 표현하면 다음과 같다. ( 위 과정의 번호와 그림의 번호를 같이 연결해서 보면 이해하기 쉬울 것이다. )

이메일 전송과정

 

 

여기서 3번 과정인 수신자 메일 서버로 전송할 때 사용되는 프로토콜이 SMTP 프로토콜이다.

나머지 전송되는 과정인 2번과 6번은 웹 메일인 경우 HTTP 프로토콜을 일반적으로 사용한다. ( 2번과정은 SMTP 프로토콜을 사용하기도 한다. )

그리고 메일 서버의 메일 박스는 실제로 구축을 하면 DB 와 같다. 그러므로 수신자는 메일 서버에 있는 DB 에 HTTP 통신으로 메일 데이터를 읽고 쓰고 삭제하게 된다.

 

기타 SMTP 에 대해서 추가적으로 설명하면,

- TCP 사용 ( 신뢰있는 데이터 전송을 한다. )

- 서버포트번호 25번 사용

- 메일 데이터는 ASCII 텍스트 문자로만 구성된다. ( 한글이나, 파일 동영상 등과 같은 것들은 MIME 타입에 ASCII 텍스트로 변환 후 전송하고, 수신 메일 서버는 받은 ASCII 텍스트를 복호화하여 사용하게 된다. )

반응형
Comments