일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 리액트
- 리액트네이티브
- 뇽뇽이
- 2024년 개발자회고
- 똥피하기
- 개발자
- 프론트 개발자
- 사이드 프로젝트
- cloudfront
- 토이프로젝트
- extension
- three.js
- 로또 몰래카메라
- 습관앱추천
- Chrome Extension
- 디지몬상테스트
- 네이버 로또
- 로또 몰카
- React
- 어플
- 66일챌린지
- 습관
- 21일챌린지
- 2024년회고
- react-three-fiber
- react mociking
- 나락퀴즈
- 프로젝트
- ReactNative
- 프론트엔드
- Today
- Total
개발 블로그
SMTP 란? 메일 시스템 동작 방식 본문
그룹 웨어 사이드 프로젝트를 현재 진행중이다.
곧 다음주에 자체 메일 시스템을 개발해야하는데 메일 시스템에 대한 개념이 아무 것도 없어 공부 후 정리해본다.
메일 시스템에 대한 전반적인 이해가 필요하신 분들이 읽고 도움이 되면 좋겠다.
SMTP 란?
Simple Mail Transfer Protocol 의 약자로, 흔히 말하는 이메일을 전송할 때 사용되는 프로토콜이다.
프로토콜은 서로 약속한 규칙을 말하며, 그러므로 SMTP 는 쉽게 말하면 메일을 전송하기 위한 약속을 정해놓은 것이라고 말할 수 있다.
메일 시스템의 구조는 다음과 같다.
user agent 는 메일을 전송하고 받을 수 있는 사용자를 말한다.
mail server 는 흔히 SMTP 서버로 메일 전송하고 받을 수 있는 서버를 말한다.
mail server 는 어떤식으로 구성되는지 아래 그림에서 보겠다.
mail server 는 출력 메시지 큐 ( outgoing message queue ) 와 mailbox 로 구성되어 있다.
각각의 역할과 의미는 아래 이메일 전송과정에서 이해할 수 있다.
이메일 전송 과정
- 송신자 user agent 에서의 메일 작성 후 mail server로 전달
- 송신자 메일 서버의 출력 메시지 큐 ( outgoing message queue ) 에 저장
- 수신자 메일 서버로 전송
- 전송 불가시 ( 수신자의 user agent SMTP 서버가 꺼져있다거나 고장난 경우 ) 30분 단위로 재전송 시도, 정해진 기간동안 전송 불가시 중단 및 송신자에게 통보 -> 메일 서버의 큐가 필요한 이유
- 수신자 메일 서버의 수신자 메일박스 ( mailbox ) 에 저장
- 수신자 user agent 에서 메일 서버의 메일박스의 메일 읽기 및 관리하기
위 과정을 그림으로 표현하면 다음과 같다. ( 위 과정의 번호와 그림의 번호를 같이 연결해서 보면 이해하기 쉬울 것이다. )
여기서 3번 과정인 수신자 메일 서버로 전송할 때 사용되는 프로토콜이 SMTP 프로토콜이다.
나머지 전송되는 과정인 2번과 6번은 웹 메일인 경우 HTTP 프로토콜을 일반적으로 사용한다. ( 2번과정은 SMTP 프로토콜을 사용하기도 한다. )
그리고 메일 서버의 메일 박스는 실제로 구축을 하면 DB 와 같다. 그러므로 수신자는 메일 서버에 있는 DB 에 HTTP 통신으로 메일 데이터를 읽고 쓰고 삭제하게 된다.
기타 SMTP 에 대해서 추가적으로 설명하면,
- TCP 사용 ( 신뢰있는 데이터 전송을 한다. )
- 서버포트번호 25번 사용
- 메일 데이터는 ASCII 텍스트 문자로만 구성된다. ( 한글이나, 파일 동영상 등과 같은 것들은 MIME 타입에 ASCII 텍스트로 변환 후 전송하고, 수신 메일 서버는 받은 ASCII 텍스트를 복호화하여 사용하게 된다. )
'컴퓨터공학' 카테고리의 다른 글
IP 주소란? IP v4 와 Netword ID 와 Host ID (1) | 2023.12.30 |
---|---|
프로세스와 스레드 차이 - 간단하고 명확하게 정리 (0) | 2023.12.30 |