인터넷 이메일 작동 원리
전자 메일 프로그램에서 보내기 단추를 누를 때 어떤 일이 발생했는지 궁금한 적이 있습니까? 아마도 작동하지 않는 한 아마. 이게 바로 당신이 궁금해하는 이유입니다. 무언가가 작동하지 않는 경우 작동하지 않는 것이 무엇인지 알면 좋습니다. 보통, 그것은 해결책의 절반입니다.
전자 메일 을 보내면 SMTP 가 작동합니다. SMTP 는 RFC 5321 : Simple Mail Transfer Protocol에 정의 된 Simple Mail Transfer Protocol의 약자입니다. 메일 클라이언트 는 이메일을 한 곳에서 다른 곳으로 가져 오는이 깔끔하고 간단한 절차를 사용하여 SMTP 서버 와 대화 합니다.
The Flirt
전자 메일 프로그램이 SMTP 클라이언트 가되어 메일 서버 의 포트 25 (일반적으로 SMTP 포트 )에 연결되고 EHLO가 말합니다. 컴퓨터는 궁극적으로 인간 뿐이며, 예의 바르고 싶어한다는 것입니다. 사실, 나중에 정중하게 시도하지는 않지만 나중에 SMTP를 사용하여 나중의 HELO 명령 (SMTP 명령은 일반적으로 4 자로 구성됩니다)의 두 가지 맛을 가져 왔습니다.
HELO의 두 가지 맛
EHLO는 최근 버전이되어 서버가 지원하는 모든 추가 기능 (예 : 배달 상태 알림 또는 안전한 ASCII 문자 이외의 메시지를 전송할 수있는 기능)을 보급합니다.
모든 서버가이 인사말을 허용하는 것은 아니지만 자연스럽게 추가 기능이 없다고 가정하는 평범한 HELO를 받아 들여야합니다. 두 hello 명령은 클라이언트가 ** LO 뒤에 도메인을 지정하도록 요구합니다. 실제로이 모양은 다음과 같습니다.
220 mail.domain.net ESMTP 서버
헬리콥터
501 HELO에는 도메인 주소가 필요합니다.
HELO localhost
250 mail.domain.net Hello localhost [127.0.0.1], 만나서 반갑습니다.
(내 입력은 기울임 꼴 이고, 서버 출력은 검은 색이며, 5로 시작하는 줄 은 오류를 나타냅니다.)
보낸 사람
프로토콜의 나머지 부분은 속성을 간단하게 받아 들일 만합니다. 전자 메일을 보내려면 MAIL FROM : 이라는 키워드로 시작 하십시오 . 다음에 보낸 사람의 제안에 따라 보낸 사람의 전자 메일 주소 가옵니다. 하지만 (
MAIL FROM :
250 sender@example.com ... 발신인 확인
받는 사람
서버가 보낸 사람의 주소를 수락하면 클라이언트는받는 사람의 주소를 제공 할 수 있습니다. 이 동작에 대한 명령 인 RCPT TO :는 다시 암시 적입니다. 나 자신 에게 메일을 보내고 싶다.
RCPT받는 사람 : recipient@example.com
250 support@lifewireguide.com ... 수신자 확인 (대기열에 보관)
서버가 큐에 대기한다는 것은 다음과 같은 의미입니다. 즉, 메일을 로컬에 저장하고 대기열에있는 다른 모든 메일과 함께 간격으로 (예 : 30 분마다) 전송합니다. 이 동작은 구성에 따라 다르며 서버가 메일을 즉시 배달 할 수도 있습니다.
거의 완료되었습니다. 그래도 여전히 누락 된 것이 중요한 부분 인 실제 메시지입니다.
메시지
이제 "봉투"가 완성되었으므로 전자 메일 메시지의 데이터가 그대로 이어집니다. 이 "데이터"는 이메일 본문 과 헤더 필드로 구성 됩니다.
서버가 메세지를 승인하게하는 상태를 시작하기위한 명령은 DATA 입니다. 다음은 전자 메일 메시지의 모든 머리글 필드와 본문이 모두 하나의 큰 텍스트 블록 (또는 데이터)을 구성합니다. 입력이 끝났음을 서버에 알리기 위해 한 행의 점만 사용됩니다 (\ r \ n. \ r \ n). 그래서 나는 내 메시지를 보낸다.
데이터
354 메일 입력, "." 그 자체로 한 줄에
메시지 ID :
날짜 : 일요일, 1997 년 8 월 17 일 18:48:15 +0200
보낸 사람 : Heinz Tschabitscher
받는 사람 : Heinz Tschabitscher
제목 : Summast-Proust Contest
백조의 세계에 떨어져!
.
250 SAA19153 배달 메시지가 수락되었습니다.
네, 이것은 To : 필드에서 전자 메일과 완전히 다른 이름을 지정할 수 있음을 의미합니다. 예를 들어, " Recipient list suppressed"
끝
MAIL FROM : 에서까지 단계를 반복하려는만큼 많은 이메일 을 보낼 수 있습니다 . . 이 작업을 끝내면 QUIT 명령을 사용하여 서버를 종료 할 수 있습니다.
떠나다
221 안녕
어떻게해야합니까?
평범하지 않은 해결책은 포트 25에서 보내는 메일 서버 에 텔넷 ( 이메일 클라이언트의 계정 설정 에서 해당 주소를 찾을 수 있음)입니다.
- 명령 프롬프트를 엽니 다.
- "telnet <메일 서버> 25"를 입력하십시오.
- SMTP를 사용하여 서버에 대화하십시오.
더 쉬운 방법은 이 Java 애플릿 을 사용하는 것입니다. 이 애플릿 은 SMTP 프로토콜을 모방하여 대화 상자를 안내합니다.