카테고리 없음

인터넷 전자메일

곰돌이볼 2023. 7. 20. 20:43

전자메일


  • 전자메일 - 비동기적인 통신 매체
  • 인터넷 메일 시스템
    • 사용자 에이전트(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