1. SMTP (Simple Mail Transfer Protocol)
ㅇ 두 전자메일 시스템이 전자우편을 교환할 수 있게 하는,
- 비교적 간단한 메세지 전송용 프로토콜
2. 주요 특징 및 참고사항
ㅇ 통신 포트 및 프로토콜
- SMTP가 사용하는 통신 포트는 25 이고,
- 신뢰성이 높은 TCP 연결에 기초함
- 모든 처리는 항상 하나의 TCP 연결을 통해 실행됨
ㅇ 메일서버 간에 메일의 송수신은 클라이언트/서버 모델에 기초
- 메일 서버는 통상 데몬으로 동작하며, 메일 클라이언트로부터 요청에 항상 준비
- SMTP는 송신자의 메일서버로부터 수신자의 메일서버로 메세지를 전송
ㅇ 주소 표기
- 송신/수신자의 확인을 위한 주소 표기는 `계정명@호스트주소` 형태를 띔
ㅇ 텍스트 인코딩 방식
- 문자코드를 7 비트 ASCII 코드로 한정하고 있기 때문에,
. 화상이나 음성등의 데이터를 포함한 문서는 전송할 수 없음
- 그러나, MIME 방식을 이용하여 첨부 형태로 전송할 수 있음
ㅇ 별칭 확장 (Alias Expander)
- 1개 이름에 대해 일-대-다 또는 다-대-일로 변환 가능
3. 주요 구성요소
ㅇ UA(User Agent)
- UA는 정의되었으나, 상세한 구현내용은 정해지지 않음
. UA 프로그램 例) elm, MH, Zmail, Berkely mail, Outlook Express, Eudora 등
ㅇ MTA(Message Transfer Agent)
- MTA는 메일을 중계,전달하는 기능을 수행
. UNIX에서는 MTA로써 주로 sendmail을 많이 사용
ㅇ MAA(Message Access Agent)
- 메일 엑세스용 프로토콜
. MAA 프로토콜 例) POP3, IMAP 등
4. MTA 클라이언트 및 MTA 서버 간의 주요 명령 및 응답
ㅇ SMTP 주요 명령들 : 주로 클라이언트가 서버에게 송신
- HELO : 클라리언트 자신이 누구인가를 밝힘 (例 : HELO : ktword.co.kr)
- MAIL FROM : 클라이언트가 메일 송신자가 누구인지를 알기위해 사용
- RCPT TO : 수신처
- DATA : 전체 메일 메세지 전송을 송신측에서 준비됨
- QUIT 등
ㅇ 주요 응답코드
- 220 : 서비스 준비 완료
- 221 : 서비스 종료에 따라 전송채널을 닫음
- 250 : 요구된 동작을 실행했음을 알림
- 354 : 메일 입력이 시작됨
※ 각각의 명령,응답은 `CR(Carrage return) + LF(Line feed)`로 끝남
5. 관련표준
ㅇ SMTP 동작원리는 RFC 821에서 설명됨.
- 이메일에 대한 일반적 정의는 RFC 821에 있음 (1982년)
ㅇ RFC 822에서는 메일 메세지 포멧 등이 정의됨
※ 사실 SMTP는 RFC로 규격화되기 이전에 이미 사용되어 왔음
- 역사상 SMTP는 UNIX용 전자우편 프로토콜로써, ARPANET상에서 사용하기 위하여
1982년에 제정된 규약으로, 오늘날 인터넷에서 전자우편의 사실상의 표준