SMTP (simple mail transfer protocol)

오늘 할 이야기는 이메일을 가능하게 해주는 SMTP라는 프로토콜에 대해서 아주 간략하게 이야기를 할 거예요

simple mail transfer protocol

굉장히 단순한 프로토콜이에요.

세 가지 컴포넌트가 있다.

24시간 내내 컴퓨터를 켜놓고 기다리지 않죠? 그러니까 이런 구조가 필요한것 켜져있으면 그 사람 서버로 바로 보내면 될텐데 (핸드폰 메세지처럼) gmail 서버가 여러분을 대신해서 24시간 하루종일 여러분 대신 메일을 받고있죠? 그리고 여러분이 다음날이든지 언제든지 확인하고 싶을때 열어보면 되죠? 여러분들은 간헐적으로 접속해서 메일을 확인한다. gmail계정이 ㅣㅇㅆ다 그럼 gmail 서버를 통해서 메일을 보내죠~ 메일 서버에[ 메일을 뿌리면 메일 서버가 메일을 보낸다. 멩리 서버 안에는 여러분이 보낼 메세지를 저장한 큐가 있고, 메일박스라고 불리는 여러분을 위한 수신된 메세지를 저장하는 공간이 있어요. 수신된 메세지를 저장하고 있는 곳이라서 하루종일 켜놓을 필요없이 받아오는 용도로 사용되고, 메일 큐라는 곳은 왜 필요하냐면 받는 사람 서버가 고장났을 수도 있겠죠? 예를 들면 여러부니 구글 계정을 사용해. 친구는 네이버 계정을 사용한다고. 근데 네이버 서버가 다운됐었어. 그럼 못보내고 기다리고 있겠죠. 보내는 일 자체를 여러분이 다 한다고 생ㅇ각해봐. 그럼 그 서버가 살아날때까지 계-속 시도할 거 아니야. 근데 그걸 여러분이 하는게 아니고 메일 서버가 대신하는거야 그걸 저장해놓는게 큐야.

out look express라는 이메일 클라이언트용 애플리케이션이라고 생각하면 되는데, 요즘 생각하면 뭐라고 생각하면되냐면 웹브라우저. 웹브라우저가 ㅈ비메일 계정에 접속해서 받아온다..

예시: 앨리스가 밥한테 메일을 보낸다.

image.png

  1. 엘리스의 UA 가 [email protected] 에 보낼 메세지를 구성하고
  2. 엘리스의 UA는 메일을 서버에 보낸다.
  3. 메세지 큐에 메세지를 위치시킨다.
  4. 클라이언트 쪽의 SMTP가 Bob의 메일 서버와의 TCP 연결을 연다.
  5. SMTP 클라이언트가 앨리스의 메세지를 tcp 커넥션 위에서 보낸다.
  6. 밥의 메일 서버가 메세지를 밥의 메일 박스에 위치시킨다.
  7. 밥이 그의 UA에게 메세제를 읽도록 시킨다.