강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스마스터1급 : 메일 서비스 구조

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 메일 서비스 구조

 

 

1) 메일 서비스 동작 구조

 

전자메일 서비스는 우편과 비슷하다.

 

 

 

보내는 사람의 편지를 받는 사람에게 전달하는 것이 목적이며, 전자메일 서비스는 보내는 사람이 작성한 전자 메일을 받는 사람에게 전달하는 것이 목적이기 때문에 그 방법과 미디어는 달라도 목적은 같다.

 

 

 

우편과 비교 메일 서비스 동작구조에 대해 알아 보자.

 

 

7ce9390993b6024bf1a77eac34869b85_1686900856_9106.png
 

 

 

일반적인 우편을 생각해보자. 먼저 편지를 보낼 사람이 편지지에 펜으로 편지를 쓴 다음 봉투에 넣고 그 봉투에 받는 사람과 보내는 사람을 적고 우표를 붙인 후 우체통에 넣는다.

 

 

 

우체국에서 정해진 시간에 우체통을 확인하여 편지를 수거해 간다.

 

 

 

우체국에서 다른 우체국으로 우편물을 발송하고, 우편물을 받는 우체국은 집배원에 의해서 각 가정의 우편함으로 배달된다.

 

 

 

받는 사람은 우편함을 확인하여 편지가 도착해 있으면 가져가게 된다.

 

 

 

이 과정이 편지를 보내는 사람과 받는 사람의 사이에서 일어나는 과정이다.

 

 

 

 

 

위 과정을 요약하면 다음과 같다.

 

 

 

 

 

보내는 사람 : 메일 작성 및 받는 사람주소, 보내는 사람 주소 작성 후 우체통에 넣음

 

우체부 : 우체통에서 편지를 수거하여 우체국으로 가져감

 

우체국1 : 받는 사람의 주소를 확인하여 다른 우체국으로 보내줌. (같은 우체국이면 배달)

 

우체국2 : 타 우체국으로부터 편지를 받아 각 우편함으로 배달

 

우편함 : 우체국에서 온 편지를 보관하고 있다가 받는 사람이 와서 편지를 가져감

 

 

전자 우편의 경우도 위와 매우 유사하게 동작한다.

 

 

 

 

 

7ce9390993b6024bf1a77eac34869b85_1686900874_1867.png
 

 

 

 

전자 우편을 이용하는 방법도 실제로 우편을 사용하는 방식과 매우 유사하다.

 

 

 

보내는 사람은 종이에 편지를 쓰고, 편지봉투에 보내는 사람 주소, 받는 사람 주소를 쓰게 된다.

 

 

 

보내는 사람 주소를 쓰는 이유는 편지를 받지 못할 때 반송될 주소를 쓰기 위함이다.

 

 

 

이와 같이 전자우편은 아웃룩, 썬더버드, 웹메일 등의 메일클라이언트를 이용하여 메일 본문을 작성하고, 받는 사람 메일 주소를 입력한다.

 

 

 

보내는 사람 메일 주소는 대부분 자동으로 입력된다.

 

 

 

작성이 완료되었다면 “Send” 버튼을 눌러 전자 우편을 메일서버로 전송한다.

 

 

 

편지를 우체국에 직접 가져다 준 것과 같다.

 

 

 

전자 우편을 전송하기 위해서는 SMTP 프로토콜을 사용하며 이는 TCP 25번 포트를 사용한다.

 

 

 

사용자로부터 수신한 전자 메일은 메일 큐(QUEUE)에 저장되고 메일서버는 저장된 큐를 확인하여 전자메일을 받는 사람의 주소지가 있는 서버로 메일을 전송(relay)한다.

 

 

 

이 때 받는사람의 메일서버에 장애가 발생 했거나 네트워크가 불안전해서 보내지 못하더라도 특정 시간(기본 7)동안 메일서버에서 정해진 시간 간격으로 재발송을 시도한다.

 

 

 

이는 우체국간의 배달과 비슷하다.

 

 

 

타 메일서버로부터 메일을 받은 서버는 전자 메일을 사용자의 메일함에 저장한다.

 

 

 

우체국의 사서함과 비슷한 기능이다.

 

 

 

메일함에 저장된 메일은 받는 사람이 메일서버에 접속하여 자신의 메일박스를 확인하고 메일이 수신되었으면 아웃룩, 썬더버드, 웹메일등의 클라이언트로 가져와 확인하게 된다.

 

 

 

 

 

일반우편과 비교하여 전자메일은 다음과 같은 유사점을 가진다.

 

 

 

 

 

편지, 연필, 종이 = MUA(Mail User Agents) : 아웃룩, 썬더버드, 웹메일등

 

우체부 = MDA(Mail Delivery Agent) : 아웃룩, 썬더버드, 웹메일등

 

우체국 사이의 전달 = MTA(Mail Transfer Agents) : sendmail, qmail, Postfix .

 

 

 

다른 점은 다음과 같다.

 

 

 

 

 

전자메일은 일반 우편보다 빠르다.

 

 

 

 

전자메일은 소리, 사진등을 쉽게 보낼 수 있다.

 

 

 

 

전자메일은 편지함을 장소와 상관없이 열어 볼 수 있다.

 

 

 

 

일반 우편은 쓴 사람의 감정을 느낄 수 있다.

 

 

 

 

2) 메일 서비스를 위한 세가지 컴퍼넌트

 

 

MTA(Mail Transfer Agent)

 

메일을 전송해주는 대리인(컴퓨터)이라고 보면 된다.

 

 

 

예를 들면 PC에서 메일을 보낸다고 생각해보자. 간단한 메일을 A라는 컴퓨터에서 B라는 컴퓨터로 보낸다면 B라는 컴퓨터가 켜져 있어야 하고 켜져 있지 않다면 매시간 켜져 있는지 확인해서 켜져 있을 때 메일을 보내고 안 켜져 있다면 켜질 때 까지 메일의 전송시도를 할 것이다.

 

 

 

이 일을 사람이 한다면, 정말 힘들고 지루한 일일 것이다.

 

 

 

MTA는 이 일을 대신해 주는 프로그램이다.

 

 

 

사용자로부터 메일을 받아서 다른 메일서버 혹은 사용자에게 전달하기 위해서 메일을 큐에 가지고 있고, 가능하다면 송신하고 그렇지 않으면 일정 기간 동안 재시도 할 것이다.

 

 

 

대표적인 리눅스의 MTASendmailQmail, Postfix가 있다.

 

 

 

Windows 계열에는 Exchange Server가 있다.

 

 

 

기타 많은MTA 프로그램이 있지만 많이 사용되지는 않는다.

 

 

 

또한 메일 엔진을 java의 클래스 파일로 제공하기도 한다.

 

 

 

MTA는 일반우편에 비교하자면 우체국 역할을 한다.

 

 

 

 

 

MDA(Mail Delivery Agent)

 

 

메일을 배달하는 대리인(컴퓨터) 일반 우편에서의 우체부와 같은 역할을 한다.

 

 

 

우체통에서 메일을 꺼내고 우체국으로 가져간 다음 우체국에 있는 메일을 각 가정에 배달하는 일을 담당하게 된다.

 

 

 

리눅스는 mail, procmail등의 프로그램이 있다.

 

 

 

 

 

MUA(Mail User Agent)

 

 

메일 사용자의 일을 대신해 주는 프로그램이다.

 

 

 

가장 대표적인 프로그램이 MS사의 Outlook 이며 가장 많이 사용된다.

 

 

 

마치 웹브라우져로 MS Explorer를 사용하듯 Windows환경에서 많이 사용된다.

 

 

 

최근 썬더버드(Thunderbird)MUA로 파이어폭스(Firefox)나 구글의 크롬(Chrome)을 웹브라우저로 사용하는 추세이다.

 

 

 

유닉스 계열에서는 pine, elm, mutt등의 CUI 유틸리티들이 많이 사용된다.

 

 

 

리눅스 GUI 환경에서는 썬더버드(Thunderbird) 및 에볼루션(Evolution)MUA로 많이 사용된다.

 

 

 

스마트폰의 다양한 OS별로 다양한 메일클라이언트 앱들이 있으며 이 또한 MUA에 포함된다.

 

 

 

무엇보다 가장 다양한 환경에서 많이 사용하는 웹메일도 MUA에 포함된다.

 

 

 

일반 우편으로 비교하면 종이와 펜과 봉투 정도로 보면 된다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  102 명