이메일 전송에는 어떤 프로토콜과 서버가 포함되며, 그 단계는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/32744

  •  09-06-2019
  •  | 
  •  

문제

지난 몇 주 동안 저는 이메일이 어떻게 작동하는지 배우려고 노력해 왔습니다.나는 클라이언트가 POP를 사용하여 서버로부터 메일을 받는 과정을 꽤 잘 이해하고 있습니다.또한 클라이언트 컴퓨터가 SMTP를 사용하여 SMTP 서버에 메시지 전송을 요청하는 방법도 이해합니다.하지만, 아직 뭔가 부족해요...

내가 이해하는 바에 따르면 보내는 메일은 세 번의 이동을 거쳐야 합니다.

  1. 클라이언트(Thunderbird를 사용하는 Gmail 사용자)를 서버(Gmail)로
  2. 첫 번째 서버(Gmail)에서 두 번째 서버(Hotmail)로
  3. 두 번째 서버(Hotmail)에서 두 번째 클라이언트(OS X Mail을 사용하는 Hotmail 사용자)로

내가 이해하는 바에 따르면 1단계에서는 클라이언트가 통신하기 위해 SMTP를 사용합니다.클라이언트는 어떻게든(예: USER 및 PASS를 사용하여) 자신을 인증한 다음 Gmail 서버에 메시지를 보냅니다.

그러나 Gmail 서버가 메시지를 핫메일 서버로 전송하는 방법을 이해하지 못합니다.

3단계에서는 핫메일 서버가 POP를 사용하여 핫메일 클라이언트에 메시지를 보냅니다(다시 인증 사용).

따라서 가장 큰 질문은 다음과 같습니다. 메일 보내기를 클릭하면 내 메시지가 내 Gmail 서버로 전송됩니다. 내 Gmail 서버는 내 친구가 메시지를 받을 수 있도록 어떻게 메시지를 핫메일 서버로 전달합니까?

매우 감사합니다!

~제이슨


감사합니다. 지금까지 도움이 되었습니다.

내가 이해하는 바에 따르면 첫 번째 클라이언트는 SMTP를 사용하여 첫 번째 서버에 메시지를 보냅니다. 대개 포트 25(보통)에서 smtp.mail.SOMESERVER.com과 같은 주소로 보냅니다.

그런 다음 SOMESERVER는 다시 SMTP를 사용하여 포트 25의 RECEIVESERVER.com(smtp.mail.RECEIVESERVER.com 또는 기타 다른 항목 아님)으로 메시지를 보냅니다.

그런 다음 수신자가 POP를 사용하여 RECEIVESERVER에 메일을 요청하면 메시지를 받습니다.오른쪽?

다시 한 번 감사드립니다(특히 dr-jan에게).

제이슨

도움이 되었습니까?

해결책

Thunderbird의 메시지를 수락한 Gmail의 SMTP 서버는 메시지를 최종 수신자에게 라우팅합니다.

이는 DNS를 사용하여 대상 이메일 주소(이 예에서는 hotmail.com)의 도메인 이름 부분에 대한 MX(메일 교환기) 레코드를 찾는 방식으로 수행됩니다.DNS 서버는 메시지를 보내야 하는 IP 주소를 반환합니다.대상 IP 주소의 서버는 들어오는 메시지를 받을 수 있도록 SMTP(표준 포트 25에서)를 실행하고 있을 것입니다.

메시지가 핫메일 서버에 수신되면 해당 사용자가 로그인하여 POP(또는 IMAP)를 사용하여 메시지를 검색할 때까지 저장됩니다.

제이슨 - 후속 조치에 답변하기 위해...

그런 다음 SOMESERVER는 다시 SMTP를 사용하여 포트 25의 RECEIVESERVER.com(smtp.mail.RECEIVESERVER.com 또는 기타 다른 항목 아님)으로 메시지를 보냅니다.

맞습니다. 보낼 도메인 이름은 수신자의 이메일 주소에서 '@' 뒤에 오는 모든 내용으로 간주됩니다.RECEIVESERVER.com은 수신.RECEIVESERVER.com(또는 실제로는 smtp.mail.RECEIVESERVER.com)과 같이 보다 구체적인 항목의 별칭인 경우가 많습니다.

nslookup을 사용하여 로컬 DNS 서버를 쿼리할 수 있습니다(Linux 및 Windows cmd 창에서 작동함).

nslookup
> set type=mx
> stackoverflow.com
Server:         158.155.25.16
Address:        158.155.25.16#53

Non-authoritative answer:
stackoverflow.com       mail exchanger = 10 aspmx.l.google.com.
stackoverflow.com       mail exchanger = 20 alt1.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 30 alt2.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 40 aspmx2.googlemail.com.
stackoverflow.com       mail exchanger = 50 aspmx3.googlemail.com.

Authoritative answers can be found from:
aspmx.l.google.com      internet address = 64.233.183.114
aspmx.l.google.com      internet address = 64.233.183.27
>                  

이는 stackoverflow.com의 모든 사람에게 보내는 이메일이 위에 표시된 Gmail 서버 중 하나로 전송되어야 함을 보여줍니다.

언급된 Wikipedia 기사(http://en.wikipedia.org/wiki/Mx_record) 위에 표시된 우선순위 번호(10, 20, ..., 50)에 대해 설명합니다.

다른 팁

메일 전송 에이전트를 찾고 계십니다. Wikipedia에는주제. <인용구>

인터넷 메시지 처리 서비스 (MHS) 내에서 메시지 전송 에이전트 또는 메일 전송 에이전트 (MTA) 또는 메일 릴레이는 클라이언트-서버 애플리케이션 아키텍처를 사용하여 한 컴퓨터에서 다른 컴퓨터로 전자 메일 메시지를 전송하는 소프트웨어입니다.MTA는 Simple Mail Transfer Protocol의 클라이언트 (송신) 및 서버 (수신) 부분을 모두 구현합니다.

메일 서버, 메일 교환기 및 MX 호스트라는 용어는 MTA 기능을 수행하는 컴퓨터를 지칭 할 수도 있습니다.DNS (Domain Name System)는 MTA 서비스를 제공하는 호스트의 도메인 이름이 포함 된 MX (메일 교환기) 리소스 레코드를 사용하여 메일 서버를 도메인에 연결합니다.

Thunderbird 클라이언트와 마찬가지로 Gmail에서 HotMail로의 링크가 SMTP를 사용하는 이유를 알고 싶을 수도 있습니다.즉, 클라이언트가 SMTP를 통해 이메일을 보낼 수 있고 DNS를 사용하여 hotmail.com에 대한 MX 레코드를 가져올 수 있는데 gmail.com을 모두 건너뛰고 직접 그곳으로 보내지 않는 이유는 무엇입니까?

몇 가지 이유가 있습니다. 일부는 역사적 이유이고 일부는 보안 때문입니다.원래 질문에서는 Thunderbird 클라이언트가 사용자 이름과 비밀번호로 로그인한다고 가정했습니다.이것은 종종 사실이 아닙니다.SMTP는 실제로 메일을 보내기 위해 로그인을 요구하지 않습니다.그리고 SMTP는 실제로 메일을 보낸 사람이 누구인지 알 수 있는 방법이 없습니다.그리하여 스팸이 탄생했습니다!

불행하게도, 발신자가 자신이라고 주장하는 사람이라고 맹목적으로 신뢰하면서 누구든지 연결하고 메일을 보낼 수 있도록 허용하는 SMTP 서버가 여전히 많이 있습니다.이러한 서버는 "오픈 릴레이"라고 불리며 스팸을 많이 생성하기 때문에 다른 메일 서버의 똑똑한 관리자에 의해 일상적으로 블랙리스트에 추가됩니다.

책임 있는 SMTP 서버 관리자는 1) 메일이 "자체" 네트워크에서 오는 경우, 2) 메일이 "자체" 네트워크로 전송되는 경우, 또는 3) 사용자가 특수한 경우에만 메일 배달을 허용하도록 서버를 설정합니다. 그를 신뢰할 수 있는 발신자로 식별하는 자격 증명을 제시합니다.사례 #1은 아마도 직장에서 메일을 보낼 때 발생하는 상황일 것입니다.귀하의 컴퓨터는 신뢰할 수 있는 네트워크에 있으므로 누구에게나 메일을 보낼 수 있습니다.많은 기업 메일 서버에는 여전히 인증이 필요하지 않으므로 사무실에 있는 누구라도 가장할 수 있습니다.재미있는!사례 #2는 누군가가 당신에게 메일을 보내는 경우입니다.사례 #3은 아마도 GMail 예제에서 발생하는 현상일 것입니다.신뢰할 수 있는 네트워크에서 오는 것이 아니라 스팸 발송자와 함께 인터넷에 접속한 것입니다.하지만 비밀번호를 사용하면 본인이 누구인지 Gmail에 증명할 수 있습니다.

역사적 측면은 예전에는 Gmail과 Hotmail 간의 연결이 간헐적이었을 가능성이 높다는 것입니다.로컬 서버에 메일을 대기열에 추가하면 링크가 설정되면 로컬 서버가 메시지를 원격 서버로 전송할 수 있으며 수신자의 에이전트가 메시지를 받을 때까지 메시지를 보관할 수 있다는 사실을 알면 메일을 걱정할 필요가 없습니다. .

첫 번째 서버는 DNS에서 Hotmail 서버의 MX 레코드를 찾습니다.MX는 특정 도메인에 대한 메일 서버를 정의하는 특수 레코드입니다.Hotmail 서버의 IP 주소를 알고있는 GMail 서버는 SMTP 프로토콜을 사용하여 메시지를 보내고 응답을 기다립니다.Hotmail 서버가 다운되면 GMail 서버가 메시지 재전송을 시도합니다 (서버 소프트웨어 구성에 따라 다름).프로세스가 정상적으로 종료되고 그렇지 않으면 GMail 서버에서 메시지를 전달할 수 없다고 알려줍니다.

이메일의 작동 원리를 알고 싶다면 SMTP RFC 또는 POP3 RFC

모든 이메일은 SMTP (또는 ESMTP)를 사용하여 전송됩니다.
이해해야 할 중요한 점은 someguy@hotmail.com으로 메시지를 보낼 때이 메시지의 대상이 그의 PC가 아니라는 것입니다.목적지는 hotmail.com 서버에있는 someguy의받은 편지함 폴더입니다.
메시지가 목적지에 도착한 후.사용자는 hotmail 서버에서 자신의 계정에 새 메시지가 있는지 확인하고 POP3를 사용하여 검색 할 수 있습니다.

또한 SMTP를 사용하여 PC에서 핫메일로 직접 메시지를 보내면 Gmail 서버를 사용하지 않고도 메시지를 보낼 수 있습니다.

2 ~ 3 단계 (예 : Gmail에서 Hotmail로)는 일반적으로 SMTP (또는 ESMTP-확장 SMTP)를 통해 이루어집니다.

Hotmail은 POP3를 통해 클라이언트에 아무것도 보내지 않습니다.여기서 몇 가지 뉘앙스를 이해하는 것이 중요합니다.클라이언트는 POP3를 통해 Hotmail에 접속하여 메일을 요청합니다.(즉, 고객이 토론을 시작 함)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top