Dlaczego potrzebuję serwera SMTP?

92

Dlaczego potrzebuję pośredniego serwera SMTP do wysyłania poczty? Dlaczego mój klient (Outlook, Thunderbird) nie może wysyłać wiadomości bezpośrednio do domeny SMTP odbiorcy?

Na przykład, jeśli muszę wysłać wiadomość e-mail na [email protected]konto Gmail, wysyłam ją na smtp.gmail.comserwer; a następnie ten serwer wyśle ​​moją wiadomość do serwera MX example.com.

Tobia
źródło

Odpowiedzi:

114

Technicznie możliwe jest wysłanie wiadomości e-mail bezpośrednio na serwer SMTP odbiorcy z komputera.

Patrząc na to z historycznego punktu widzenia, jeśli zdalny serwer SMTP jest wyłączony, chcesz, aby system automatycznie go obsługiwał i kontynuował ponawianie próby - stąd masz serwer SMTP. Podobnie w dawnych czasach nie wszystkie serwery pocztowe były podłączone przez cały czas - łącza międzystrefowe były drogie, więc poczta była umieszczana w kolejce i wysyłana po ustanowieniu łącza.

Przechodząc do miejsca, w którym Internet jest tani, nadal przydatne są mechanizmy do ponownej próby wysłania wiadomości e-mail, jeśli serwer jest niedostępny, i nie jest idealne, aby ta funkcja została zapisana w MUA (agencie użytkownika poczty / programie pocztowym użytkownika końcowego). Te funkcje pasują do MTA (serwer poczty / serwer SMTP).

Ale robi się coraz gorzej - spamerzy . Większość wiadomości e-mail (ponad 80%) to spam. Dlatego dostawcy poczty dokładają wszelkich starań, aby zmniejszyć ten problem - a wiele technik przyjmuje założenia dotyczące sposobu dostarczania wiadomości e-mail - ważne są następujące kwestie:

  1. Greylisting: Niektórzy dostawcy automatycznie przerywają połączenie pocztowe, jeśli nadawca i odbiorca nie komunikowali się wcześniej, i oczekują, że spróbują po raz drugi - ponieważ spamerzy często tego nie robią, podczas gdy serwer SMTP zawsze powinien. Zmniejsza to ilość spamu o około 80%. Ale to jest do kitu.

  2. Reputacja: o wiele bardziej prawdopodobne jest, że ktoś wysyłający e-maile za pośrednictwem renomowanego, znanego serwera SMTP jest legalny niż serwer nocny. Aby zyskać reputację, dostawcy robią wiele rzeczy:

    1. Blokuj adresy dynamiczne / klienckie (nie w 100%, ale zmapowano duże fragmenty Internetu).

    2. Spójrz, że odwrotny DNS pasuje do przodu DNS: Nie jest to bardzo trudne, ale pokazuje pewien poziom odpowiedzialności i znajomość najlepszych praktyk - i coś, czego nie ma wiele bloków adresów klienta.

    3. Reputacja: Podczas komunikowania się z innymi serwerami SMTP wielu dostawców śledzi ilość spamu i ilości wysłanych wiadomości e-mail i może zmniejszyć ilość spamu poprzez ograniczenie połączeń i kontrolę tych parametrów. (Jest to wiele sposobów, nie wszystkie z nich są oczywiste, ale wymagają znanego nadawcy).

    4. SPF i DKIM: Mechanizmy te wiążą zasoby DNS z nazwą domeny, aby utrudnić fałszowanie poczty i byłoby trudne (ale niekoniecznie niemożliwe do wdrożenia, jeśli program pocztowy (MUA) jest odpowiedzialny za pocztę wychodzącą. (Dodano, aby ta odpowiedź była większa) kompletna, ponieważ została już zaakceptowana. Należy ją przypisać do plakatów poniżej, ponieważ wpadło mi to w pamięć, ale mimo to jest bardzo ważna)

Prawdopodobnie istnieją inne drobne obawy, ale byłyby to najważniejsze.

Davidgo
źródło
19
Nie zapomnij o tak niezbyt drobnych rzeczach, jak SPF (biała lista hostów, która może wysyłać pocztę dla domeny) i DKIM (cyfrowe podpisywanie wiadomości na poziomie domeny) - szczególnie ta ostatnia jest możliwa tylko z dedykowanym przekaźnikiem.
grawity
@grawity Zdecydowanie warto wspomnieć, ale dlaczego DKIM nie jest „możliwy” bez dedykowanego przekaźnika? Selektory DKIM nie są powiązane z aplikacją wysyłającą ani adresem IP. Jeśli klient poczty może podpisać wiadomość opublikowanym kluczem, jest on tak samo ważny jak każdy inny sygnatariusz.
Mathias R. Jessen
2
@ManuH: Zgodnie z danymi z dokładnej odpowiedzi, zwykła poczta zagraża 1/5 objętości poczty. Zgodnie z danymi na moim serwerze, normalna poczta naraża 1/20 wolumenu poczty. To świetny kompromis.
dotancohen
1
@manuh: Greylisting działa poprzez zamknięcie połączenia przed wysłaniem wiadomości e-mail - nasłuchuje tylko do momentu otrzymania nadawcy i odbiorcy - które znajdują się w nagłówku. Ponadto niektóre systemy greylist będą zdyscyplinowane. akceptuj wszystkie wiadomości e-mail z serwera smtp, który ma historię ponownych prób doręczenia. Niestety, jest bardzo skuteczny.
davidgo
4
Można dodać, że w „dobrych dawnych czasach” poczta była często wysyłana z jednego serwera SMTP na inny, potem na inny, a potem inny, zanim dotarł do miejsca docelowego. Zwykle działało to dobrze, ale na przykład podczas ataku robaka RTM jeden z wyłączonych komputerów był jednym z istotnych przekaźników poczty, więc wiadomości e-mail z ostrzeżeniem, rozwiązaniami i poprawkami dotyczącymi robaka mogły dotrzeć do 48 godzin ich odbiorcy.
Baard Kopperud
32

Dlaczego potrzebuję pośredniego serwera SMTP do wysyłania poczty? Dlaczego mój klient (Outlook, Thunderbird) nie może wysyłać wiadomości bezpośrednio do domeny SMTP odbiorcy?

W 1991 r. - i na początku lat 90., a nawet wcześniej - możesz być w stanie zrobić to, co opisujesz. Ale w rzeczywistości w 2015 r. Można wprawdzie wysyłać wiadomości e-mail do dowolnej osoby z dowolnego komputera, na którym jest zainstalowana usługa pocztowa, ale świat SPAM sprawił, że ta metoda była bezużyteczna.

Gdy korzystasz z „prawdziwej” usługi SMTP, ustawiane są takie rzeczy, jak rekordy PTR, rekordy SPF, a nawet klucze DomainKeys, które zostały ustanowione tylko w jednym celu i tylko w jednym celu: w celu zagwarantowania, że ​​SMTP wysyłający wiadomość jest zgodny z prawem. A jeśli nie jest? Przefiltruj wiadomość do folderu SPAM lub „wielkiej otchłani” usunięcia. Oto podział każdego z tych przedmiotów:

  • PTR (rekord wskaźnika / zwrotny rekord DNS): weryfikacja na poziomie serwera. Jak wyjaśniono tutaj , rekord PTR służy do mapowania interfejsu sieciowego (IP) na nazwę hosta. Oznacza to, że jeśli masz adres 123.456.789.0na swoim serwerze SMTP wysyłającym e-maile, smtp.example.comodpowiedni rekord PTR byłby odpowiedni smtp.example.com. Wydaje się to zbyt proste, ale działa, ponieważ jedynym, który naprawdę może ustawić rekord PTR, jest właściciel adresu IP i można go ustawić tylko na ich sprzęcie. Działa więc jako punkt weryfikacji, kto jest właścicielem / uruchamia / zarządza tym adresem IP.

  • SPF (Sender Policy Framework): Weryfikacja poziomu wejścia DNS nazwa hosta. Rekord SPF - jak wyjaśniono tutaj - jest w zasadzie rekordem DNS ustawionym przez właściciela nazwy domeny, który zawiera listę adresów IP i nazw hostów serwerów, które mogą wysyłać wiadomości e-mail dla tej nazwy domeny. To kolejny krok weryfikacji, który gwarantuje, że tylko prawdziwy właściciel nazwy domeny dla serwera SMTP może wysyłać maile. Powiedzmy, że serwer z adresem IP, na który 123.456.789.9wysyła wiadomości e-mail example.com. Wiemy już, że to smtp.example.comwykorzystuje 123.456.789.0, ale wpis rekordu SPF dla example.commoże oznaczać: „Hej! 123.456.789.9to dobry serwer! On jest legalny! Szanuj jego e-maile! ”

  • DKIM (DomainKeys Identified Mail): weryfikacja poziomu wiadomości e-mail. Jak wyjaśniono tutaj i na Wikipedii , „DKIM to system sprawdzania poprawności wiadomości e-mail zaprojektowany do wykrywania fałszowania wiadomości e-mail, zapewniając mechanizm umożliwiający odbierającym wymiennikom poczty sprawdzanie, czy poczta przychodząca z domeny jest autoryzowana przez administratorów tej domeny i czy wiadomość e-mail (w tym załączniki) nie został zmodyfikowany podczas transportu. ”Za pomocą skrótów kryptograficznych DKIM sprawdza, czy sama poczta nie została przefiltrowana ani naruszona podczas transportu. Służy to również jako kolejny punkt weryfikacji w łańcuchu „Czy jesteś uprawniony czy jesteś spamem?”.

Tak więc ostatecznie publiczny serwer SMTP warty cokolwiek będzie miał ustawione co najmniej dwa z tych elementów (PTR i SPF), aby zweryfikować, czy serwer SMTP i powiązany e-mail są prawidłowe. Nie wszyscy używają DKIM, ale jest to kolejna warstwa walidacji, która staje się coraz bardziej popularna w dzisiejszych czasach, ponieważ SPAMmers stają się bardziej wytrwali w swoich wysiłkach, aby wysłać SPAM.

JakeGould
źródło
15

Większość prywatnych dostawców usług internetowych blokuje port TCP 25 (SMTP), aby uniemożliwić uczestnictwo w sieci spamowej. Jeśli komputer zostanie zainfekowany, może zacząć wyrzucać spam na żądanie innej osoby.

Ron Maupin
źródło
Piszesz „Większość prywatnych dostawców usług internetowych blokuje port TCP 25 (SMTP)” <- czy możesz wyjaśnić, co to oznacza. Czy masz na myśli, że nie pozwolą ci nawiązać połączenia wychodzącego z serwerem SMTP na porcie 25? A może masz na myśli, że nie pozwolą ci otrzymać połączenia na porcie 25?
barlop
2
@barlop to pierwsze - blokują połączenia wychodzące na 25 z łączy domowych do maszyn innych niż ich własne serwery pocztowe (a nawet do dowolnego miejsca, ponieważ mogą używać 587 lub 465 dla własnych serwerów). Jednak przesadą jest stwierdzenie, że większość dostawców usług internetowych to robi.
hobbs
2
@hobbs - Moje doświadczenie (i jest to uczciwa część mojej pracy) jest inne. Podczas gdy wielu dostawców usług internetowych zablokuje ruch wychodzący z sieci z celem portu 25 (który wymusza ruch portu 25 przez ich serwery pocztowe), to samo na ogół nie jest prawdą w przypadku portów 587 lub 465 - i rzeczywiście ma to sens. Porty 587 i 465 ogólnie WYMAGAJĄ uwierzytelnienia i blokowania, a konkretnie MUA do MTA, a nie MTA-MTA - zablokowanie tych portów spowodowałoby OGROMNY luz, tak jak wymaga tego wiele firm, umożliwiając roaming, odpowiedzialność i nie naruszając SPF.
davidgo
3
@ Hobbs, nigdy nie pisałem, że większość dostawców usług internetowych to robi; to, co napisałem, to że większość prywatnych dostawców usług internetowych to robi. Na przykład AT&T, Comcast, TWC, Verizon itp. Robią to dla swoich klientów indywidualnych, ale nie robią tego dla swoich klientów biznesowych.
Ron Maupin
6

Wszystkie pozostałe odpowiedzi są doskonałe, a spam ma z tym wiele wspólnego.

Ale w rzeczywistości istnieje prostsza, bardziej ogólna odpowiedź: funkcje. Wysyłanie wiadomości e-mail za pośrednictwem SMTP jest w rzeczywistości bardzo złożonym przedsięwzięciem. Nawet bez spamu nie chciałbyś wdrożyć całego zestawu funkcji protokołu SMTP w każdym kliencie e-mail; lepiej jest mieć dedykowane oprogramowanie (sendmail, postfix itp. to te duże w świecie * nix, Exchange w świecie Windows).

Na przykład, nawet w najbardziej podstawowym, „prawdziwy” serwer SMTP musi przynajmniej być w stanie rozpoznać rekordy MX. Następnie musi negocjować funkcje (głównie TLS, ale są też inne funkcje). Musi zarządzać kolejkami w celu ponowienia próby, generować raporty o niedostarczeniu itp.

A to tylko podstawowa, niezbędna funkcjonalność, bez której serwer nawet nie działałby. Nie obejmuje nawet takich rzeczy jak przepisywanie adresów, listy mailowe. Nie wspominając już o kilkunastu innych protokołach, które obsługują sendmail i innych, takich jak UUCP.

Wdrożenie SMTP w Outlooku, Thunderbirdzie itp. Jest bardzo minimalne - w najlepszym razie odpowiada to w przybliżeniu użyciu inteligentnego hosta na sendmailu.

Powiązany, ale odrębny problem: poczta e-mail jest tematem bardzo wrażliwym na bezpieczeństwo i chciałbyś, aby jeden lub kilka centralnie zarządzanych serwerów obsługiwało ją, zamiast potencjalnie setek lub tysięcy pojedynczych serwerów na każdym pulpicie.

Kevin Keane
źródło
To dobra uwaga. Nie chodzi tylko o rzeczywiste funkcje kolejkowania itd.: Dostępność serwera ma wpływ na niektóre z tych funkcji. Jeśli wystąpi problem i wyłączysz laptopa, nie będzie można ponowić próby, dopóki nie zostanie ponownie włączony - serwer poczty będzie prawdopodobnie dostępny 24 godziny na dobę, 7 dni w tygodniu, więc jest w znacznie lepszej pozycji do zarządzania kolejką wiadomości. Po przesłaniu wiadomości na serwer przez SMTP klient poczty nie musi pozostawać w trybie online, aby zapewnić dostarczenie.
David Spillett
4

Dlaczego potrzebuję pośredniego serwera SMTP do wysyłania poczty? Dlaczego mój klient (Outlook, Thunderbird) nie może wysyłać wiadomości bezpośrednio do domeny SMTP odbiorcy?

Możesz stworzyć program pocztowy, który to zrobił, i nie mam wątpliwości, że inni też to zrobili (lub próbowali).

Zasadniczo piszesz narzędzie, które jest zarówno MUA (agent użytkownika poczty), jak i MTA (agent transferu poczty) w jednym.

Powodem tego, że tradycyjnie jest on podzielony na różne narzędzia, z MTA rezydującym „po stronie serwera”, jest to, że MTA, który wysyła pocztę przez otwarty Internet, jest znacznie bardziej skomplikowany w pisaniu i konfiguracji, a także korzysta z przebywania na niezawodny serwer „zawsze na”.

MTA musi:

  • Wyszukaj i połącz się z serwerami, którym nie ufa lub które mogą źle funkcjonować, i radzić sobie z błędami w rozsądny sposób, który nie powoduje utraty poczty.

  • Postępuj z serwerami, które są wyłączone, i kieruj je na alternatywne serwery lub ustaw kolejkę poczty w celu późniejszego ponownego spróbowania. Najlepiej działa to na serwerze, który jest „zawsze podłączony” do Internetu. Oznacza to również, że agent przesyłania poczty potrzebuje własnych obszarów przechowywania poczty w kolejce.

  • Zajmij się szeregiem różnych możliwości serwera, dostosowując zachowanie do możliwości serwera odbierającego.

  • Powiadom użytkownika o stanach błędów lub niedostarczeniu poczty, aby nie tylko została utracona.

  • Stosuj doskonałe praktyki bezpieczeństwa i bądź bardzo świadomy bezpieczeństwa.

  • Idealnie jest, jeśli rezydujesz na niezawodnym, zawsze podłączonym serwerze ze stabilnym adresem IP i zwrotnym wpisem DNS, tj. Połączeniem internetowym odpowiednim dla serwerów publicznych. Pomaga to innym systemom nie wykrywać poczty wysyłanej jako spam.

Biorąc pod uwagę te wymagania, sensowne jest umieszczenie serwera SMTP gdzieś na ogólnodostępnym serwerze zawsze dostępnym publicznie i próba użycia narzędzia odpowiedniego do wykonywania tego konkretnego zadania.

thomasrutter
źródło
1

Kolejną rzeczą do rozważenia jest otrzymanie zwróconego e-maila . Co najmniej wszystkie wychodzące wiadomości e-mail mają adres FROM, na który można wysłać odpowiedź (nieznany użytkownik, odpowiedź urlopowa itp.). Aby adres zwrotny został rozpoznany, musi istnieć rekord MX wskazujący lokalizację skrzynki odbiorczej. O ile nie wysyłasz wiadomości e-mail z komputera ze stałym adresem IP, który jest zawsze włączony, będziesz potrzebować serwera do obsługi tych wiadomości przychodzących. Jest to zazwyczaj (ale nie zawsze) obsługiwane przez tę samą usługę.

GMail, Outlook 365 i Yahoo Mail to przykłady usług e-mail, z których korzystają osoby wysyłające wiadomości e-mail. W przypadku komercyjnego wysyłania wiadomości e-mail istnieją usługi, takie jak MailChimp, Marketo i Eloqua, które są bardzo dobre w wysyłaniu masowych wiadomości e-mail dla firmy i obsłudze takich rzeczy, jak odbicia, ograniczanie przepustowości i dostarczalność.

Zobacz: https://en.m.wikipedia.org/wiki/Bounce_address

dana
źródło
Nie rozumiem, dlaczego potrzebuję statycznego adresu IP, aby uzyskać odpowiedź ... Odpowiedź powinna zostać dostarczona na mój serwer MX (np. Gmail), a nie na mój komputer. Czy mam rację?
Tobia,
Tak, masz rację. Chyba chodzi mi o to, że skrzynka odbiorcza zwykle istnieje gdzieś na serwerze, aby wysłać wychodzącą wiadomość e-mail. Logicznie rzecz biorąc, sensowne jest, aby serwer obsługiwał również wychodzące wiadomości e-mail. W przeciwnym razie stracisz rzeczy takie jak „wysłany” folder e-mail.
dana
Mhm, to rozsądne. Ale mogę wysłać wiadomość za pomocą Gmaila z nieznanym adresem „z” lub „odpowiedz do” bez serwera SMTP…
Tobia,
1
Jeśli korzystasz z Gmaila, musisz użyć uwierzytelniania smtp. Zatem adres FROM jest ustawiony na adres @ gmail.com. W przeciwnym razie będziesz mógł skorzystać z ich usługi do fałszowania.
dana
2
W dzisiejszych czasach wielu użytkowników nie przejmuje się odrzuceniami, ALE konfiguracja, która nie przyjmuje odrzuceń, jest zwykle uważana za prawdopodobne źródło spamu.
rackandboneman,