Email system은 크게 3가지로 구성되어 있다.
- user agent ( email을 주고받는 쪽. email을 사용하는 PC)
- mail server
- SMTP (simple mail transfer protocol)
위의 그림은 email system을 간단하게 나타낸 것이다. 이 그림을 바탕으로 email system을 알아보자.
mail reader라고도 한다. 메일을 작성하거나 읽는 것을 수행한다.
email msg를 가지고 있는 server이다. email을 갖고 온다고 하면, server에 저장되어 있는 메시지를 가지고 온다 생각하면 된다. 위 그림의 mailbox는 유저에게 들어온 email들을 가지고 있다. message queue는 나갈 email들을 가지고 있다.
Mail server들 간에 주고받을 때 사용하는 protocol이다. mail을 보내는 쪽 서버가 client. 받는 쪽 서버가 server가 된다. 만약 daum.net에서 gmail.com으로 메일을 보냈다하면, daum.net server와 google mail server가 통신하게 되는데, 여기서 사용되는게 SMTP이다. SMTP는 TCP를 사용한다. port number는 25번 사용한다. 보내는 쪽과 받는 쪽이 같은 port number를 사용해야 한다.
메일을 보내는 과정은 3개의 과정으로 구성된다.
1. handshking: TCP connection open
2. transfer: 전송
3. closure: 위 과정이 끝나면 TCP connection close
Alice가 Bob에게 메시지를 보내는 과정
<요약>
Handshcking을 하고, DATA 전까지 email을 주고받는데 필요한 과정을 주고받고, Do you like ketchup? How about pickles?(실제 메세지)를 전달하고 끝낸다.
HTTP와 SMTP비교
SMTP는 persistent connection을 이용한다.(email은 한번가면 연달아 가기 때문에 persistent connection을 이용한다.)
HTTP는 server에 있는 내용 가져오는 것이고, SMTP는 server에다가 내용을 보내는 것이다. (HTTP : pull, SMTP : push)
HTTP는 각각 오브젝트들은 각 메시지 내에서 encapsulated 되어 있는 형태이고, SMTP는 여러 개의 오브젝트들이 한번에 보내지는 형태이다. HTTP와 SMTP는 동일하게 ASCII코드이고, command/response 구조를 가진다.
Mail message는 header와 body 부분이 있다.
header에는 To, From, Subject 가 있다.
To, From : 실제 이메일 내에 들어가는 보내는 사람, 받는 사람 정보 메시지.
Subject : 제목 정보
body 부분: 이메일 내용.(ASCII 형태로 되어있다)
(※주의) SMTP의 명령어 To, From과는 다르다. SMTP는 서버들 간에 주고받는 것이고, 이것은 실제 정보이다.
Mail access protocol이란 user agent가 Mail server로부터 가지고 오는 protocol이다.
(※주의) SMTP는 Mail server들 간에 메시지를 교환하는 protocol이다.
Mail access protocol에는 PEP3, IMAP, HTTP 등이 있다.
Post Office Protocol 3 또는 POP3는 인터넷을 통해 이메일을 수신하는 가장 일반적으로 사용되는 프로토콜이다. 대부분의 이메일 서버와 클라이언트가 지원하는 이 표준 프로토콜은 원격 서버(email server)에서 이메일을 수신하고 로컬 클라이언트(user agent)로 보내는 데 사용됩니다. POP3는 이메일을 수신하고 이메일 서버에 보관하는 단방향 클라이언트-서버 프로토콜이고 "3"은 원래 POP 프로토콜의 세 번째 버전을 나타낸다. 수신자 또는 이메일 클라이언트는 POP3를 사용하여 서버에서 주기적으로 메일을 다운로드할 수 있고 수신자가 오프라인으로 이메일을 볼 수 있도록 서버에서 클라이언트로 이메일을 다운로드하는 수단을 제공한다. POP3는 "저장 후 전달하는" 서비스로 생각할 수 있습니다. 이메일이 클라이언트에 있으면 POP3는 서버에서 이메일을 삭제한다. 그러나 일부 구현에서 사용자 또는 관리자는 메일이 일정 시간 동안 저장되도록 지정할 수 있어 사용자가 지정된 기간 내에 원하는 만큼 이메일을 다운로드할 수도 있다.
POP3 포트
POP3는 기본적으로 다음 두 포트에서 작동한다.
authorization phase : user id와 password를 입력해서 맞으면 OK.(사용자 인증 과정이 있다)
transaction phase : 나한테 받은 email들의 list를 보여준다. (retr: msg를 가져온다, dele: 삭제)
< POP3 >
< IMAP >
저장된 메시지들에 의해 manipulation(조작)할 수 있다. 예로 폴더를 지정해서 폴더별로 관리할 수 있다.
최근에는 그냥 웹으로 접속해서 메일을 본다.