SMTP 서버가 필요한 이유는 무엇입니까?


92

메일을 보내려면 왜 중간 SMTP 서버가 필요합니까? 내 클라이언트 (Outlook, Thunderbird)가 수신자의 SMTP 도메인으로 직접 메시지를 보낼 수없는 이유는 무엇입니까?

예를 들어 address@example.comGmail 계정으로 이메일을 보내야하는 경우 smtp.gmail.com서버로 보냅니다. 이 서버는의 메시지를의 MX 서버로 보냅니다 example.com.


답변:


114

기술적으로 컴퓨터에서 수신자의 SMTP 서버로 직접 이메일을 보낼 수 있습니다.

기록을 보면 원격 SMTP 서버가 다운 된 경우 시스템이 자동으로 서버를 처리하고 다시 시도하기를 원하므로 SMTP 서버가 있습니다. 마찬가지로 예전에는 모든 메일 서버가 항상 연결되어 있지는 않았습니다. 장거리 링크 비용이 많이 들기 때문에 링크가 설정되면 메일이 대기하고 전송됩니다.

인터넷이 저렴한 곳으로 이동하면 서버를 사용할 수없는 경우 전자 메일 전송을 다시 시도하는 메커니즘이 여전히 유용하며이 기능을 MUA (메일 사용자 에이전트 / 최종 사용자 메일 프로그램)에 작성하는 것은 적합하지 않습니다. 이러한 기능은 MTA (메일 서버 / SMTP 서버)에 적합합니다.

그러나 스패머 는 더욱 악화됩니다 . 대부분의 이메일 (80 % 이상)은 스팸입니다. 따라서 메일 제공 업체는이 문제를 줄이기 위해 가능한 모든 조치를 취하며 많은 기술이 이메일 전달 방식을 가정합니다. 다음은 중요한 고려 사항입니다.

  1. 그레이 리스팅 : 일부 공급자는 발신자와 수신자가 이전에 통신하지 않은 경우 자동으로 메일 연결을 끊고 SMTP 서버는 항상 스패머가 그렇지 않기 때문에 다시 시도 할 것으로 예상합니다. 이것은 스팸 볼륨을 약 80 % 줄입니다. 그래도이 작업을 수행해야합니다.

  2. 평판 : 평판 이 좋고 알려진 SMTP 서버를 통해 전자 메일을 보내는 사람이 야간 서버보다 합법적 일 수 있습니다. 평판을 얻기 위해 공급자는 다음과 같은 여러 가지 작업을 수행합니다.

    1. 동적 / 클라이언트 주소 차단 (100 %는 아니지만 많은 인터넷 청크가 매핑되었습니다).

    2. 리버스 DNS는 DNS와 일치합니다. 그렇게하기는 어렵지 않지만 일정 수준의 책임과 모범 사례에 대한 지식을 제공하며 많은 클라이언트 주소 블록에는 없습니다.

    3. 평판 : 다른 SMTP 서버와 통신 할 때 많은 공급자가 스팸 량과 전송 된 전자 메일 량을 추적하고 연결을 제한하고 이러한 매개 변수를 주시하여 스팸 량을 줄일 수 있습니다. (이 작업을 수행하는 방법에는 여러 가지가 있지만 모두 분명하지는 않지만 알려진 발신자가 필요합니다).

    4. SPF 및 DKIM : 이러한 메커니즘은 DNS 리소스를 도메인 이름에 연결하여 메일을 위조하는 것을 어렵게 만들고 어렵습니다 (단, 메일 프로그램 (MUA)이 발신 메일을 담당하는 경우 배포 할 수는 없습니다). 이미 받아 들여진대로 완료하십시오. 크레딧에 대한 크레딧은 내 마음을 미끄러 뜨렸을 때 아래 포스터로 가야하지만 그럼에도 불구하고 매우 유효합니다)

다른 사소한 문제가있을 수 있지만 이것이 가장 큰 문제 일 것입니다.


19
SPF (도메인에 메일을 보낼 수있는 호스트의 허용 목록) 및 DKIM (도메인 수준에서 메시지에 디지털 서명)과 같은 사소한 사항을 잊지 마십시오. 특히 후자는 전용 릴레이를 통해서만 가능합니다.
grawity

@grawity 확실히 언급 할 가치가 있지만, 전용 릴레이없이 DKIM을 "가능한"이유는 무엇입니까? DKIM 선택기는 전송 응용 프로그램 또는 IP 주소에 바인딩되지 않습니다. 메일 클라이언트가 게시 된 키로 메시지에 서명 할 수있는 경우 다른 서명자만큼 유효합니다.
Mathias R. Jessen

2
@ManuH : 정답의 측정 항목에 따르면 일반 메일은 메일 볼륨의 1/5를 손상시킵니다. 서버의 메트릭에 따라 일반 메일은 메일 볼륨의 1/20을 손상시킵니다. 훌륭한 트레이드 오프입니다.
dotancohen

1
@manuh : 그레이 리스팅은 이메일을 보내기 전에 연결을 닫아 작동합니다. 헤더에있는 발신자와 수신자를받을 때까지만 수신합니다. 또한 일부 그레이리스트 시스템은 전적으로 작동합니다. 다시 시도한 이력이있는 smtp 서버의 모든 전자 메일을 수락합니다. 슬프게도 매우 효과적입니다.
davidgo

4
"좋은 시절"에 메일을 종종 한 SMTP 서버에서 다른 SMTP 서버로 보낸 다음 다른 SMTP 서버로 보낸 다음 다른 서버로 보낸 다음 추가 할 수 있습니다. 이것은 일반적으로 잘 작동했지만 예를 들어 rtm-worm 공격 중에 컴퓨터 다운 중 하나가 필수 메일 릴레이 중 하나 였으므로 경고, 솔루션 및 웜에 대한 수정 사항이 포함 된 전자 메일은 도달하는 데 최대 48 시간이 걸릴 수 있습니다. 그들의 수령인.
Baard Kopperud

32

메일을 보내려면 왜 중간 SMTP 서버가 필요합니까? 내 클라이언트 (Outlook, Thunderbird)가 수신자의 SMTP 도메인으로 직접 메시지를 보낼 수없는 이유는 무엇입니까?

1991 년, 그리고 대부분의 1990 년대 초와 심지어 초기에, 당신은 당신이 묘사 한 것을 할 수있을 것입니다. 그러나 2015 년의 현실은 기술적으로 메일 서비스가 설치된 모든 컴퓨터에서 기술적으로 전자 메일을 보낼 수있는 반면 SPAM의 세계는이 방법을 효과적으로 쓸모 없게 만들었습니다.

"실제"SMTP 서비스를 사용하는 경우 PTR 레코드, SPF 레코드 및 도메인 키와 같은 목적은 하나의 목적과 목적으로 만 설정됩니다. 메시지를 보내는 SMTP가 합법적임을 보증합니다. 그렇지 않다면? 메시지를 SPAM 폴더 또는 "큰 심연"삭제로 필터링하십시오. 각 항목의 내용은 다음과 같습니다.

  • PTR (포인터 레코드 / 역 DNS 레코드) : 서버 수준 확인. 여기설명 된 대로 PTR 레코드는 네트워크 인터페이스 (IP)를 호스트 이름에 매핑하는 데 사용됩니다. 123.456.789.0SMTP 서버에 이메일을 보내는 주소가 있다면 smtp.example.com해당 PTR 레코드는 다음과 같습니다 smtp.example.com. 너무 단순 해 보이지만 실제로 PTR 레코드를 설정할 수있는 유일한 사람은 IP 주소의 소유자이고 하드웨어에서만 설정할 수 있기 때문에 작동합니다. 따라서 해당 IP 주소를 누가 소유 / 운영 / 관리하는지에 대한 검증 지점 역할을합니다.

  • SPF (Sender Policy Framework) : 호스트 이름 DNS 엔트리 레벨 확인. 여기에 설명 된 SPF 레코드 는 기본적으로 도메인 이름 보유자가 설정 한 DNS 레코드로서 해당 도메인 이름에 대한 전자 메일을 보낼 수있는 서버의 IP 주소 및 호스트 이름 목록을 제공합니다. SMTP 서버의 실제 도메인 이름 소유자 만 메일을 보낼 수 있도록하는 또 다른 확인 단계입니다. IP 주소를 가진 서버가에 대한 123.456.789.9이메일을 보내고 있다고 가정 해 보겠습니다 example.com. 우리 는 이미을 smtp.example.com사용 123.456.789.0하지만 SPF 레코드 항목에 대해 example.com“Hey! 123.456.789.9좋은 서버입니다! 그는 합법적입니다! 그의 이메일을 존중하십시오!”

  • DKIM (DomainKeys Identified Mail) : 전자 메일 메시지 수준 확인 여기Wikipedia설명 된 대로 “DKIM은 도메인에서 들어오는 메일이 해당 도메인의 관리자가 승인하고 전자 메일 (첨부 파일 포함)을 확인할 수있는 메커니즘을 제공하여 전자 메일 스푸핑을 탐지하도록 설계된 전자 메일 유효성 검사 시스템입니다. DKIM은 암호화 해시를 사용하여 메일 자체가 전송 중에 필터링되거나 변조되지 않았는지 확인합니다. 또한 "합법적입니까 아니면 스팸입니까?"체인의 또 다른 검증 지점 역할을합니다.

결국, 무엇이든 가치가있는 공개 SMTP 서버에는 SMTP 서버와 관련 전자 메일이 합법적인지 확인하기 위해 이러한 항목 중 두 개 이상 (PTR 및 SPF)이 설정됩니다. 모든 사람이 DKIM을 사용하는 것은 아니지만 SPAMmer가 SPAM을 전송하려는 노력에서 점점 더 강해짐에 따라 요즘 점점 인기를 얻고있는 또 다른 검증 계층입니다.


15

대부분의 가정용 ISP는 스팸 네트워크에 참여하지 못하도록 TCP 포트 25 (SMTP)를 차단합니다. PC가 감염되면 PC는 다른 사람의 요청에 따라 스팸을 발산 할 수 있습니다.


"대부분의 가정용 ISP는 TCP 포트 25 (SMTP)를 차단합니다"라고 작성합니다. 포트 25에서 SMTP 서버로 나가는 연결을 허용하지 않습니까? 아니면 포트 25에서 연결을 수신하지 못하게 하시겠습니까?
barlop

2
전자는 @barlop — 주거용 링크에서 자체 메일 서버 이외의 시스템 (또는 자체 서버에 587 또는 465를 사용할 수 있기 때문에 다른 곳)에 대한 25 개의 발신 연결을 차단합니다. 그러나 대부분의 ISP가 그렇게한다는 것은 다소 과장된 일입니다.
홉스

2
@ hobbs-내 경험 (그리고 그 일의 공정한 부분)이 다릅니다. 많은 ISP가 포트 25의 대상 (메일 서버를 통해 포트 25 트래픽을 강제로 수행)으로 네트워크를 떠나는 트래픽을 차단하지만 포트 587 또는 465의 경우 일반적으로 마찬가지입니다. 실제로 이것은 의미가 있습니다. 포트 587 및 465는 일반적으로 인증이 필요하며 MTA-MTA보다는 MTA에서 MUA 로의 차단 및 차단이 필요합니다. 이러한 포트를 차단하면 많은 회사에서 로밍, 책임 및 SPF를 깨뜨리지 않기 위해 필요한만큼 많은 백래시가 발생합니다.
davidgo

3
@ hobbs, 나는 대부분의 ISP가 이것을하는 것을 결코 쓰지 않았다. 내가 쓴 것은 대부분의 가정용 ISP 가 이것을 한다는 것 입니다. 예를 들어, AT & T, Comcast, TWC, Verizon 등은 거주 고객을 위해이 작업을 수행하지만 비즈니스 고객에게는이 작업을 수행하지 않습니다.
Ron Maupin

6

다른 답변은 모두 우수하며 스팸은 그와 관련이 있습니다.

그러나 실제로 더 단순하고 더 일반적인 답변이 있습니다. SMTP를 통해 이메일을 보내는 것은 실제로 매우 복잡한 작업입니다. 스팸이 없어도 모든 이메일 클라이언트에서 SMTP 프로토콜의 전체 기능 세트를 구현하고 싶지는 않습니다. 전용 소프트웨어를 사용하는 것이 좋습니다 (Sendmail, postfix 등은 * nix 세계에서는 큰 것이며 Windows 세계에서는 Exchange입니다).

예를 들어, 가장 기본적인 경우라도 "실제"SMTP 서버는 최소한 MX 레코드를 확인할 수 있어야합니다. 그런 다음 기능을 협상해야합니다 (대부분 TLS이지만 다른 기능도 있습니다). 재시도 대기열, 비 배달 보고서 생성 등을 관리해야합니다.

이는 서버가 작동하지 않는 기본적인 필수 기능입니다. 주소 재 작성, 메일러 테이블과 같은 것도 포함하지 않습니다. sendmail 등 UUCP와 같이 지원하는 수십 가지 프로토콜은 말할 것도 없습니다.

Outlook, Thunderbird 등의 SMTP 구현은 최소한으로, sendmail에서 스마트 호스트를 사용하는 것과 거의 같습니다.

관련이 있지만 별도의 문제 : 전자 메일은 보안에 매우 민감한 주제이므로 각 데스크톱에 잠재적으로 수백 또는 수천 개의 개별 서버 대신 하나 이상의 중앙 관리 서버가 전자 메일을 처리하도록 할 수 있습니다.


이것은 좋은 지적입니다. 큐잉을위한 실제 기능에 관한 것만이 아닙니다 . 서버 의 가용성 은 이러한 기능 중 일부와 차이를 만듭니다. 문제가 있고 랩톱을 종료 한 경우 다음에 켜질 때까지 다시 시도 할 수 없습니다. 메일 서버는 연중 무휴 24 시간 사용 가능할 가능성이 높으므로 메시지 대기열을 관리하는 데 훨씬 유리한 위치에 있습니다. SMTP를 통해 서버에 메시지를 제출 한 후에는 메일 클라이언트가 온라인 상태를 유지하지 않아도 배달 할 수 있습니다.
David Spillett

4

메일을 보내려면 왜 중간 SMTP 서버가 필요합니까? 내 클라이언트 (Outlook, Thunderbird)가 수신자의 SMTP 도메인으로 직접 메시지를 보낼 수없는 이유는 무엇입니까?

이 작업을 수행하는 전자 메일 프로그램을 만들 수 있으며 다른 사람들도 이전에 전자 메일 프로그램을 수행했거나 시도한 것 같습니다.

기본적으로 MUA (메일 사용자 에이전트) 및 MTA (메일 전송 에이전트) 도구를 하나로 작성해야합니다.

MTA가 "서버 쪽"에있는 MTA를 사용하여이 도구를 전통적으로 다른 도구로 분리 한 이유는 개방형 인터넷을 통해 메일을 보내는 MTA가 쓰기 및 구성이 훨씬 더 복잡하기 때문입니다. 안정적인 "항상 켜져있는"서버.

MTA는 다음을 수행해야합니다.

  • 신뢰할 수 없거나 잘못 작동 할 수있는 서버를 찾아 연결하고 메일을 잃지 않는 합리적인 방법으로 오류 조건을 처리합니다.

  • 다운 된 서버를 처리하고 대체 서버로 라우팅하거나 나중에 다시 시도 할 수 있도록 메일을 대기시킵니다. 이것은 인터넷에 "항상 연결되어있는"서버 프로세스에서 가장 잘 실행됩니다. 또한 메일 전송 에이전트에 대기중인 메일에 대한 자체 저장 영역이 필요하다는 것을 의미합니다.

  • 다양한 서버 기능을 처리하고 수신 서버의 기능에 따라 동작을 조정하십시오.

  • 메일이 유실되지 않도록 오류 상태 또는 메일을 전달할 수없는 경우에 대해 사용자에게 다시보고하십시오.

  • 탁월한 보안 관행을 가지고 있으며 보안에 매우 중점을 둡니다.

  • 이상적으로는 안정적인 IP 주소와 역방향 DNS 항목 (공용 서버에 적합한 인터넷 연결)이있는 항상 연결되어있는 안정적인 서버에 상주하십시오. 이것은 다른 시스템이 스팸으로 보낸 메일을 탐지하지 못하게합니다.

이러한 요구 사항을 감안할 때 SMTP 서버를 공용 서버에 항상 배치하고 해당 작업을 수행하는 데 적합한 도구를 사용하는 것이 좋습니다.


1

고려해야 할 또 다른 사항은 회신 이메일을받는 것 입니다. 최소한 모든 발신 전자 메일에는 응답을 보낼 수있는 FROM 주소 (알 수없는 사용자, 휴가 회신 등)가 있습니다. 반송 주소를 확인하려면 반송받은 편지함 위치를 가리키는 MX 레코드가 있어야합니다. 고정 IP 주소가 항상 켜져있는 컴퓨터에서 이메일을 보내지 않는 한 이러한 인바운드 메시지를 처리하려면 서버가 필요합니다. 이것은 일반적으로 동일한 서비스에 의해 처리되지만 항상 그런 것은 아닙니다.

GMail, Outlook 365 및 Yahoo Mail은 이메일을 보내는 개인이 사용하는 이메일 서비스의 예입니다. 상업용 전자 메일 전송에는 회사에 대량 전자 메일을 보내고 바운스, 스로틀 및 배달 가능성과 같은 항목을 처리하는 데 유용한 MailChimp, Marketo 및 Eloqua와 같은 서비스가 있습니다.

참조 : https://en.m.wikipedia.org/wiki/Bounce_address


답장을 받으려면 왜 고정 IP가 필요한지 모르겠습니다. 답장은 내 컴퓨터가 아닌 MX 서버 (예 : Gmail)로 전달되어야합니다. 내가 맞아?
Tobia

그래 너가 옳아. 내 요점은 발신 전자 메일을 보내기 위해 일반적으로 서버의받은 편지함이 어딘가에 있다는 것입니다. 논리적으로 해당 서버가 발신 전자 메일을 처리하는 것이 좋습니다. 그렇지 않으면 "보낸"전자 메일 폴더와 같은 항목이 손실됩니다.
dana

그것은 합리적입니다. 하지만 smtp 서버를 사용하여 알 수없는 "보낸 사람"또는 "답장"주소로 Gmail에 메시지를 보낼 수 있습니다.
Tobia

1
Gmail을 사용하는 경우 smtp 인증을 사용해야합니다. 따라서 FROM 주소는 @ gmail.com 주소로 설정됩니다. 그렇지 않으면 스푸핑에 서비스를 사용할 수 있습니다.
dana

2
요즘에는 많은 사용자가 반송 메일에 대해 신경 쓰지 않아도되었지만 반송 메일을 수락하지 않는 설정은 일반적으로 스팸 가능성이 높은 것으로 간주됩니다.
rackandboneman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.