SMTP

SMTP

임재성
4 min readAug 22, 2019

□ mail 전송의 원리

Internet service 중 가장 큰 비중을 차지하고 있는 것 중에 하나가 바로 mail service일 것이다. mail server를 운영하려는 우리는, 과연 internet에서 mail이 어떠한 원리로 전송되는지 반드시 알아야 할 것이다. 우선은 간단한 원리를 소개하겠고.. 앞으로 계속해서 mail server의 작동원리까지 설명해 나가겠다.

■ internet에서는 메시지를 송신하기 위해 SMTP 프로토콜을 사용한다.
SMTP란, Simple mail Transfer protocol의 약자로서 메시지를 교환하기 위한 프로토콜 규약이다.
다음의 그림을 보면서 자세히 설명하겠다.

1. 사용자는 mail client (outlook 또는 eudora)와 같은 프로그램을 통해서 mail을 작성한 후, SMTP를 사용하여 mail deamon으로 메시지를 전송한다.

※ 유닉스용 전자우편 프로그램으로는 mail, mailx, elm, pine(외부에디터 사용)등이 있으며, 윈도우에서는 넷스케이프 mail 메신저, 익스플로러의 아웃룩 익스프레스, eudora 등이 있다.

2. 메일 데몬은 종단간 client의 주소를 분석하고 가장 가까운 mail server(송신자 소속의 메일서버)로 메시지와 정보를 보낸다.

※ mail deamon이란 일종의 프로세스로서, 송신자의 메일과 정보를 메일 서버가 해석 가능하도록 재가공한다. 반대의 경우 또한 같은 방법으로 수신자의 정확한 메시지 수신과 릴레이를 지원한다.
참고적으로, UNIX 기반의 대표적인 SMTP mail deamon으로는 [send mail]이 있으며, 앞으로 랩의 홈페이지에 unix/linux 카테고리가 생기게 된다면 sendmail의 사용에 대한 강좌도 준비하도록 하겠다.

3. 송신자가 보낸 편지가 일단 송신자 측의 전자우편을 관리하는 Mail Server에 전달되면, Mail Server는 수신자의 전자우편 주소를 분석해서 최단 경로를 찾아 근접한 Mail Server에 편지를 전달하게 된다.

4. 최종 수신자측의 Mail Server에 도착하기까지 연속적으로 전달하는 중계작업이 계속된다.

서로 근접한 Mail Server들 간에 전자우편을 계속해서 중계해 나가는 방법을 통해 메일을 저장 후 전송 (Store-and-forward)하는 서비스를 하게 된다.

5. 이러한 일련의 작업이 계속적으로 이루어 진후, 송수신자는 정확하게 메일 교환을 할 수 있게 된다.

SMTP (Simple Mail Transfer Protocol)

일반적으로 메일을 송신할 때 사용되어진다고 볼 수 있다.
SMTP와 관련된 프로토콜에 대한 표준은 STD와 RFC에서 정해진 것이다. 서버에서 서버로의 프로토콜이며 이외의 다른 여러 프로토콜은 메시지를 접속하기 위해서 사용한다. STMP와 관련된 프로토콜을 살펴보면 다음과 같다.

① STD 10/RFC 821:두 컴퓨터 사이의 메일 교환 표준을 정의하며 SMTP 자체에 관한 표준으로 TCP/IP 호스트 사이에서 메일을 전달하는데 사용된다.

② STD 11/RFC 822, RFC1049:RFC 822와 RFC 1049에 포함된 메일 메시지의 형식에 관한 표준을 정의하며 공식적인 프로토콜명은 MAIL이다. RFC822는 메일 헤더 필드의 의미를 기술하고 헤더 필드 집합과 그에 대한 해석을 정의한다. RFC 1049는 평문 아스키 이외의 문서 형식들이 메일 본문에서 어떻게 사용될 수 있는지에 대해 기술하고 있다.

③ RFC 974:DNS(domain name system)을 이용한 메일 경로 배정에 관한 표준을 정의하고 있으며 공식 프로토콜명은 DNS-MX이다.

STD 10/RFC 821에서는 SMTP를 통해 전달되는 데이터는 상위 비트가 0으로 설정된 7비트 아스키 데이터라고 기술하고 있다. 이는 영문텍스트 메시지를 전송하는데는 적합하지만, 비영어권 데이터 또는 비 텍스트 데이터에 대해서는 부적합하다. 이러한 제약을 극복하기 위해 다음과 같은 접근 방식이 사용된다.

① MIME(multipurpose internet mail extension):RFC 2045부터 RFC 2049에서는 텍스트와 2진 데이터를 RFC 822에서 정의한 7비트 아스키로 코드화하는 메카니즘을 명시한다.

② SMTP Service Extensions:RFC 821에서 정의한 SMTP의 기능을 확장하는 메커니즘을 RFC 1869, RFC 1652, 1870에서 각각 정의하고 있다.

출처: https://unabated.tistory.com/entry/mail-전송의-원리 [랄라라]

--

--