본문 바로가기
네트워크

(5) E-mail

by fortissimo 2024. 3. 31.

이메일의 3가지 주요 요소


  • user agent
  • mail server
  • SMTP: 이메일을 보내는데 필요한 애플리케이션 계층 프로토콜. 

 

SMTP


신뢰적인 전송을 위해 TCP를 사용하며, 사용하는 포트 번호는 25이다.

메일을 보내는 서버에서 받는 서버로 직접 연결한다.

 

이메일의 전송은 다음과 같은 과정을 거친다.

1. 송신자가 user agent를 이용해 수신자에게 보낼 메시지를 입력한다.

2. 송신자의 user agent는 송신자의 메일 서버로 메시지를 보내며, 이 메시지는 메시지 큐에 들어간다.

3. 송신자의 메일 서버의 SMTP 클라이언트가 받는 서버의 25번 포트로 연결을 시도한다.

4. 성공적으로 연결되면 클라이언트와 서버가 애플리케이션 계층 핸드셰이킹을 시도한다. 이 과정에서 클라이언트는 송신자의 이메일 주소, 수신자의 이메일 주소를 제공한다.

5. 클라이언트가 TCP를 통해 메시지를 보낸다.

6. 서버에게 보낼 또 다른 메시지가 없다면 TCP에게 연결을 닫을 것을 명령한다. 수신자의 메일 서버의 SMTP 서버가 메시지를 수신하고, 메일 서버는 수신자의 메일박스에 놓는다.

7. 수신자는 user agent를 이용해 메일을 읽는다.

 

SMTP는 push 프로토콜이기 때문에 수신자의 user agent는 메시지를 읽기 위해 SMTP를 사용할 수 없다. HTTP나 IMAP을 사용해 이메일을 읽을 수 있다.

메일 메시지 포맷


From: abc@gmail.com
To: def@gmail.com
Subject: Hello world!

메시지 몸체(ASCII 문자)

 

메시지 헤더와 메시지 몸체로 구분된다.

헤더는 키워드: 값의 순으로 구성되며, From 헤더와 To 헤더가 반드시 포함되어야 한다.

'네트워크' 카테고리의 다른 글

(8) Reliable Data Transfer Protocol(rdt)  (0) 2024.04.12
(6) DNS  (0) 2024.04.02
(4) HTTP 메시지 포맷, 쿠키와 웹 캐시, HTTP/2  (0) 2024.03.05
(3) TCP와 UDP, HTTP  (0) 2024.02.21
(1) 네트워크 용어 및 패킷  (0) 2024.02.18