학습 목표
- SMTP 개념과 동작 원리 이해
SMTP 이용 과정
메일 송신 과정
- SMTP 클라이언트와 SMTP 서버 사이 TCP 연결을 설정하는 단계
- SMTP 서버에 메일을 보내는 데이터 전송 단계
- 메일 전송을 완료하고 TCP 연결을 종료하는 단계
SMTP 서버 하나 이상에 메일 전달하는 경우
- 서버로 접근 가능성 확인
- 서버와 연결 설정
- 메일 전송
서버와 직접 연결이 불가능한 경우
메시지 저장과 중개 방식으로 서버와 직접 연결이 불가능한 경우에도 동작
SMTP 명령과 응답
SMTP 기본 동작은 SMTP 클라이언트에서 명령을 전송하고 이에 대해 SMTP 서버가 응답하는 과정으로 이루어진다.
SMTP 명령과 응답은 미리 정의된 문자 코드와 개행 문자로 구성된다.
SMTP 명령(command)
SMTP 응답(response)
클라이언트가 전송한 명령에 대하여 SMTP 서버는 SMTP 응답(SMTP Response) 기능을 수행한다.
응답 정보는 세 자리 코드와 추가 정보로 구성된다. 코드의 첫 문자는 의미가 다른 2~5 중 하나로 시작한다.
SMTP 연결
SMTP 연결 설정
- Well-known 포트 번호: TCP 25번
-
서버 응답
- 수신 준비 OK: 200
- 준비 안 된 경우: 421
- 클라이언트: HELO
- 서버 응답: 250
SMTP 연결 시뮬레이션
- 클라이언트: kihyun.uu.ac.kr의 telnet 프로그램
- 서버: information.uu.ac.kr
- telnet을 이용해 접속, 마지막에 포트번호 명시
- 정상적으로 접속 완료했다는 메시지
- 연결에 대한 정상적 응답
- 클라이언트 자신을 밝힘
- 4번에 대한 응답
데이터 전송
명령과 응답으로 구성
메일 주소 확인 과정
- MAIL FROM
- RCPT TO
헤더 정보 전송 과정
- DATA
- From:
- To:
- Date:
메시지 전송 과정
- 빈 줄 (헤더와 메시지 사이)
- 송신 메시지
- 마침표(.)
데이터 전송 시뮬레이션
- 송신자 메일 주소
- 수신자 메일 주소
- 550번 응답(User unknown)
- 수신자 메일 주소 수정해서 재전송
- 수신자 메일 주소 정상적으로 처리
- 메시지 전송
- 메시지 데이터 끝 마침표(.)
- 연결 해제
전송된 메일 확인
- mailx 프로그램으로 메일 읽기
- 읽지 않은 메시지 표시
- 메시지 읽기
- 메시지 저장
SMTP 연결 해제
명령과 응답
- 클라이언트에서 QUIT 요청
- 서버에서 211로 회신