SMTP   Simple Mail Transfer Protocol  

(2024-05-01)

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년에 제정된 규약으로, 오늘날 인터넷에서 전자우편의 사실상의 표준

이메일 구성, 동작
   1. 메일서버   2. IMAP   3. MTA,MAA   4. POP,POP3   5. SMTP  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"