[네트워크] E-mail, SMTP, Mail access protocols

oldshoe·2024년 4월 18일

네트워크

목록 보기
10/34

E-mail

이메일을 주고 받을 떄는 3가지의 구성 요소가 존재한다.
user agents, mail servers, SMTP(simple mail transfer protocol)

user agent는 메시지를 보내고, 읽고, 전달하는 등의 작업을 수행하는 유저를 의미하고, mail servers는 메시지를 올바른 사람에게 전달하도록 하고 저장하는 서버를 의미한다.

그리고 중요한 SMTP는 E-mail을 주고 받을 때 사용되는 프로토콜이다.

SMTP

SMTP는 TCP를 사용한다.
메시지를 전송하는데 reliably가 필요하기 때문이다. 25번 포트를 사용한다.

그리고 sending 서버가 receiving 서버로 직접 전달하는 Direct transfer이다.
SMTP 프로토콜을 이용한 메시지 전달은 다음과 같은 세 가지의 전달 과정을 거친다.
1. handshaking : TCP connection open
2. 메시지 전송
3. closure : connection 해제

HTTP 프로토콜처럼 클라이언트가 command를 보내면 서버가 response 해준다.
그리고 메시지는 7-bit의 아스키 형태로 전달되어야 한다.

SMTP는 persistent connection을 사용한다.
한 번 연결에 여러 메시지를 전달할 수 있다.

HTTP vs SMTP

HTTP의 pull은 클라이언트가 서버로부터 무언가를 가져오는 것이다.
SMTP의 push는 클라이언트가 서버 쪽으로 뭔가를 보내는 것이다.
HTTP와 SMTP 모두 아스키 형태의 command와 response를 사용한다. 그리고 status code를 사용한다.
HTTP에서는 각각의 객체들이 자기 자신의 response 메시지로 캡슐화되어 있다.
SMTP는 여러 객체들이 메시지의 여러 파트에 담겨져서 한번에 보내진다.

Mail message format


메일은 실제로 헤더와 바디로 구성되어 있다.

  • Header : subject, to, from(SMTP 커맨드와 별개로 실제 데이터 속에 들어가는 보내는 사람, 받는 사람을 의미, SMTP에서는 보내는 서버, 받는 서버에 대한 정보)
  • Body : 아스키 코드로 되어있는 내용

Mail access protocols


사진을 보다시피, 메일을 보내는 user agent가 서버에 보낼 떄는 SMTP를 사용한다.
하지만 메일을 받는 user agent가 자신의 메일 서버에서 받은 메일을 가져올 때는 IMAP과 HTTP를 사용한다.
IMAP은 pop에 기능을 약간 추가 한것이다. IMAP은 서버에 저장된 메시지의 검색, 삭제, 폴더를 제공한다.

profile
toomuxi : There are many things in the world that I want to do

0개의 댓글