기술(IT)

메일전송 프로토콜 SMTP 기술

2019. 11. 3.
728x90

SMTP(Simple Mail Transfer Protocol)는 전자 메일 전송을 위한 통신 프로토콜이다. 메일 서버 및 기타 메시지 전송 에이전트는 SMTP를 사용하여 메일 메시지를 주고 받는다.  인터넷 표준으로서, SMTP는  RFC 821에 의해 처음 정의되었고, RFC 5321에 의해 확장 SMTP 추가에 의해 업데이트되었는데, 이는 오늘날 널리 사용되고 있는 프로토콜의 다양성이다. 메일은 내부적으로 비표준 프로토콜을 사용할 수 있지만, 자신의 시스템 외부에서 이메일을 보내거나 받을 때는 모두 SMTP를 사용한다. SMTP 서버는 일반적으로 25번 포트에서 전송 제어 프로토콜을 사용한다. 사용자 수준의 전자 메일 클라이언트는 일반적으로 메시지를 전달하기 위해 메일 서버로 보내는 경우에만 SMTP를 사용하며, 일반적으로 RFC 8314에 따라 포트 587 또는 465의 메일 서버에 발신 전자 메일을 제출한다. 메시지 검색을 위해 IMAP과 POP3는 표준이지만, 독점 서버는 종종 독점 프로토콜을 구현하기도 한다.
1960년대에는 다양한 형태의 일대일 전자메시지들이 사용되었다. 사용자들은 특정 메인프레임 컴퓨터를 위해 개발된 시스템을 사용하여 통신했다. 특히 미국 정부의 ARPANET에서 더 많은 컴퓨터가 상호 연결됨에 따라, 서로 다른 운영 체제 간의 메시지 교환을 허용하는 표준이 개발되었다. SMTP는 1970년대에 개발된 이러한 표준에서 성장했다. 추가 구현에는 1973년부터 FTP 메일과 메일 프로토콜이 포함된다. 개발 작업은 1970년대 내내 계속되었는데, 1980년 경 ARPANET이 현대 인터넷으로 전환될 때까지 계속되었다. 그 후 존 포스터는 1980년에 메일 전송 프로토콜을 제안하여 FTP에 대한 메일의 의존을 제거하였다. 

SMTP는 1980년대 초에 널리 쓰이게 되었다. 당시에는 유닉스 대 유닉스 카피 프로그램(UUCP) 메일의 보완으로, 간헐적으로 연결되는 기계 간의 이메일 전송 처리에 더 적합했다. 반면에 SMTP는 송신 및 수신 시스템이 항상 네트워크에 연결되어 있을 때 가장 잘 작동한다. 둘 다 스토어와 전진 메커니즘을 사용하며 푸시 기술의 예다. Usenet의 뉴스 그룹은 여전히 UUCP와 함께 서버 간에 전파되지만, UUCP는 메시지 라우팅 헤더로 사용했던 방 경로와 함께 메일 전송이 사실상 사라졌다. 메시지 제출과 SMTP-AUTH는 1998년과 1999년에 도입되었는데, 둘 다 이메일 전달의 새로운 추세를 기술하고 있다. 원래, SMTP서버는 일반적으로 만드는 조직, 외부에서 단체를 위해, 안과 밖에 조직에서 메시지를 전달하고 우편물을 받고 내부 있었다. 시간이 지나, SMTP서버(메일 전송 에이전트)에 갔다 하지만, 실제적으로 일부는 지금부터 메일 중곘다 메일 사용자 에이전트가 되기 위해 메시지 제출한 직원들은 역할 넓히던 중이었다.조직의 밖. (예를 들어 회사 이사는 여행 기업 SMTP서버를 사용하는에 이메일 보내기를 바라고 있다.). 이 문제는, 월드 와이드 웹의 급속한 팽창과 인기의 결과, SMTP,을 막기 위해 사용자 인증 메일 중계에 대한 구체적 규칙과 방법에 포함되야 했다.그런 귀찮은 이메일의 계전 방식으로 남용. 때문에 인기 있는 메일 서버들이 그것에 문제를 해결하는에서는, 예를 들면, 부호 있는 도메인 이름을 추가하는 메일을 다시 쓸 것이다 메시지 제출(RFC2476)에 힘쓰다 원래 시작되었다.자격이 없는 주소입니다. 때 메시지가 다른 곳과 중계되고 있는 유래된 메시지를 수리하고 이 행동이 도움이 되는 초기 제출,고 해로운 위험하다. 메일을 제출과 릴레이로 분리하는 것은 릴레이 재필을 금지하면서 재필을 허용하고 장려하는 방법으로 간주되었다. 현재 스팸 더 유행했던, 이것 또한 어떤 방식으로 메일 조직뿐만 아니라 추적 가능성에서 파견 나가는 것에 대한 권한 부여를 제공하는 것을 보였다. 이러한 릴레이와 제출의 분리는 빠르게 현대의 이메일 보안 관행의 토대가 되었다.

이 프로토콜은 순전히 ASCII 텍스트 기반에서 시작되었기 때문에, 2진수 파일, 즉 많은 영어 이외의 언어로 된 문자를 잘 다루지 못했다. SMTP를 통한 전송을 위한 이진 파일을 인코딩하기 위해 다목적 인터넷 메일 확장자(MIME)와 같은 표준이 개발되었다. Sendmail 후에 개발된 MTA(Mail Transfer Agent)도 8비트 클린을 구현하여, 8비트 ASCII와 같은 임의의 문자 데이터 전송에 대체 그냥 8비트 전송 전략을 사용할 수 있도록 하는 경향이 있었다. 최근에 SMTPUTF8 확장이 UTF-8 텍스트를 지원하기 위해 만들어졌으며, 키릴어 또는 중국어처럼 라틴어가 아닌 스크립트로 국제 컨텐츠와 주소를 사용할 수 있게 되었다.

메일 처리 모델
메일은 메일 클라이언트가 TCP 포트 587의 SMTP를 사용하여 메일 서버에 제출한다. 대부분의 우편함 제공업체들은 여전히 전통적인 25항에 대한 제출을 허용하고 있다. MSA는 메일 전송 에이전트에게 메일을 전달한다. 흔히 이 두 에이전트는 동일한 시스템에서 서로 다른 옵션을 사용하여 실행된 동일한 소프트웨어의 인스턴스다. 로컬 프로세싱은 단일 시스템에서 수행되거나 여러 시스템으로 분할될 수 있으며, 한 시스템의 메일 에이전트 프로세스는 파일을 공유할 수 있지만, 여러 시스템에 있는 경우 SMTP를 사용하여 서로 메시지를 전송하며, 여기서 각 시스템은 다음 시스템을 스마트 호스트로 사용하도록 구성되어 있다. 각 프로세스는 그 자체로 MTA(SMTP 서버)이다. 경계 MTA는 DNS(Domain Name System)를 사용하여 수신자의 도메인에 대한 메일 교환기 레코드를 검색한다. MX 레코드에는 대상 호스트의 이름이 포함되어 있다. 대상 호스트 및 기타 요인에 따라 MTA는 교환 서버를 선택한다: 문서 MX 레코드 참조. MTA는 SMTP 클라이언트로 교환 서버에 연결된다.

메시지 전송은 두 MTA 사이의 단일 연결에서 또는 중간 시스템을 통한 일련의 홉에서 발생할 수 있다. 수신 SMTP 서버는 최종 목적지, 중간 릴레이 또는 게이트웨이가 될 수 있다. 각 홉은 메시지에 대한 공식적인 책임의 양도로서, 수신 서버는 메시지를 전달하거나 그렇지 않은 경우 적절히 보고해야 한다. 로컬 메일 서버에 배달되면 인증 메일 클라이언트(MUA)에 의한 일괄 검색을 위해 메일이 저장된다. 메일은 이메일 클라이언트라고 하는 최종 사용자 응용프로그램에 의해 검색된다. 일단 마지막 홉이 들어오는 메시지를 받아들이면, 그것은 지역 배달을 위해 그것을 우편 배달 에이전트(MDA)에게 건네준다. MDA는 메시지를 관련 편지함 형식으로 저장한다. 송신과 마찬가지로, 이 수신은 한 대 또는 여러 대의 컴퓨터를 사용하여 할 수 있지만, MDA 위의 도표에서는 메일 교환기 상자 근처의 한 박스로 묘사되어 있다. MDA는 메시지를 저장소에 직접 전달하거나 SMTP 또는 이러한 목적으로 설계된 SMTP의 파생물인 LMTP(Local Mail Transfer Protocol)와 같은 다른 프로토콜을 사용하여 네트워크를 통해 전달할 수 있다. 로컬 메일 서버에 배달되면 인증 메일 클라이언트(MUA)에 의한 일괄 검색을 위해 메일이 저장된다. 메일은 이메일 클라이언트라고 하는 최종 사용자 응용프로그램에 의해 검색된다. SMTP는 메시지 내용이 아닌 메시지 전송을 정의한다. 따라서, 메일 봉투와 봉투 발신인과 같은 매개변수를 정의하지만, 헤더도, 메시지 자체의 본문도 정의하지 않는다. 

LIST

댓글

추천 글