전자메일
- 전자메일 - 비동기적인 통신 매체
- 인터넷 메일 시스템
- 사용자 에이전트(user agent)
- 메일 서버(mail server)
- SMTP(Simple Mail Transfer Protocol)
- 사용자 에이전트(user agent)
- 메일 사용자
- 메일 서버(mail server)
- 전자메일 인프라스트럭처의 중심
- 사용자마다 메일박스(mailbox) 소유
- SMTP의 클라이언트와 서버 → 모두 수행
- 메일박스(mailbox)
- 메일 유지 및 관리
SMTP(Simple Mail Transfer Protocol)
- SMTP 특징
- 인터넷 전자메일을 위한 주요 애플리케이션 계층 프로토콜
- TCP 통신
- 클라이언트와 모든 메일서버에서 수행됨
- 메일 서버 - SMTP의 클라이언트와 서버 모두 존재
- SMTP 클라이언트일 때 : 메일 서버 → 다른 메일서버 메일 전송
- SMTP 서버일 때 : 메일 서버 ← 다른 메일 서버 메일 수신
- 중간 메일 서버 사용 X
- SMTP 단점
- 오래된 기술
- 메일의 전송크기 : 7bit ASCII → SMTP 전송 전후로 ASCII로 변환해야하는 문제 발생
전자메일 송수신 과정
- 1. 송신자는 사용자 에이전트를 통해서 메일 작성 후 전송
- 2. 사용자 에이전트는 HTTP나 SMTP를 통해서 사용자 메일 서버의 메시지 큐에 메일 전송
- 3. SMTP 클라이언트는 수신자측의 SMTP 서버와 TCP 연결
- 3-1. 만약 수신자의 메일 서버에 문제가 있을 경우, 메시지 큐(message queue)에 메일을 보관 후 수신자 메일 서버로 재전송 시도
- 3-2. 재전송 실패 시 송신자에게 메일 전송 실패 알림
- 4. 핸드셰이킹 실행
- 5. 수신자측의 SMTP 서버는 메일 수신 후 수신자의 메일박스에 메일 보관
- 6. 수신자는 사용자 인증하기
- 7. 사용자 에이전트는 HTTP나 IMAP를 통해서 메일박스에 있는 메일 열람
SMTP 클라이언트와 서버
- 클라이언트 SMTP와 서버 SMTP는 TCP 연결(포트 25번) 설정을 통해서 메일 전달
- 클라이언트와 서버 통신 과정
- 1. TCP 통신 연결을 위해서 핸드셰이킹
- 2. 클라이언트 → 서버 : 메세지 전송
- 3. TCP 연결 해제
- 클라이언트 SMTP 명령어
- HELO : 서버의 호스트 네임과 함께 전달
- MAIL FROM : 송신자의 메일 주소 전달
- RCPT TO : 수신자의 메일 주소 전달
- DATA : 메일 내용을 ASCII 형태로 전달(각 메세지는 CRLF.CRLF 로 끝남, CR : Carriage Return, LF : Line Feed)
- QUIT : TCP 연결 종료
mail message format
- mail message = Header + CRLF(빈줄) + Body
- Header
- 메일의 주변 정도
- RFC 5322에 의해 정의됨
- 필수 내용
- From:
- To:
- 선택 내용
- Subject:
- Body
- ASCII 문자
** 참고 문헌 ** 「컴퓨터 네트워킹 : 하향식 접근(7판)」 James F. Kurose,Keith W.Ross