Prosta poczta Protokół transferu (SMTP) to standard wiadomości e-mail. Pierwotnie był on zapisany w RFC 821 (1982), ostatnio zaktualizowany w 2008 roku rozszerzonymi dodatkami SMTP pod RFC 5321 (obecnie szeroko stosowany protokół).
Chociaż serwery pocztowe i inne agenty pocztowe używają protokołu SMTP do wysyłania i odbierania korespondencji e-mail, oprogramowanie niestandardowej klasy zwykle wykorzystuje porty SMTP tylko do wysyłania danych do serwera w celu przekazywania. Aplikacje klienckie zazwyczaj używają IMAP lub POP3 do odbierania wiadomości. Te protokoły są najbardziej wygodne i popularne do tych celów: mają zaawansowaną funkcjonalność i szeroki zakres możliwości.
Komunikacja SMTP między serwerami poczty używa portu TCP 25. Klienci pocztowi często wysyłają wychodzące wiadomości e-mail do serwera poczty na porcie 587. Chociaż nieaktualne dostawcy poczty nadal pozwalają na użycie niestandardowego portu 465 do tego celu.
Połączenia SMTP chronione przez TLS, znane jako SMTPS, mogą być wykonywane przy użyciu technologii STARTTLS.
Opatentowane systemy i systemy poczty e-mail używają własnych niestandardowych protokołów do uzyskiwania dostępu do skrzynek pocztowych na swoich serwerach pocztowych - wszystkie firmy używają portów serwera SMTP podczas wysyłania lub odbierania wiadomości e-mail poza swoimi systemami.
Niemal wszystkie działania w Internecie są możliwe dzięki protokołom - specjalnym regułom oprogramowania sieciowego, które pozwalają komputerowi komunikować się ze wszystkimi sieciami, aby użytkownicy mogli robić zakupy, czytać wiadomości, wysyłać wiadomości e-mail. Protokoły są niezbędne do codziennej aktywności sieciowej - są wbudowane w oprogramowanie sieciowe i są używane domyślnie.
Protokół portu SMTP zapewnia zestaw kodów upraszczających wymianę wiadomości e-mail między serwerami (komputer sieciowy przetwarzający wiadomości przychodzące i wychodzące). Jest to skrót oznaczający, że serwer może rozbić różne części wiadomości na kategorie, które może zrozumieć inny serwer. Kiedy użytkownik wysyła wiadomość, zmienia się w linie tekstu, oddzielone słowami kodowymi (lub liczbami), które określają przeznaczenie każdej sekcji.
SMTP to protokół TCP / IP używany do pracy z pocztą e-mail. Ponieważ jednak ogranicza się do możliwości wysyłania wiadomości do kolejki po stronie odbiorczej, zwykle jest używany z protokołem POP3 lub IMAP, który umożliwia przechowywanie danych na serwerze i, jeśli to konieczne, pobieranie go. Innymi słowy, zazwyczaj używają aplikacji, która wybiera SMTP do wysyłania wiadomości e-mail oraz POP3 lub IMAP w celu odbierania korespondencji. W systemach uniksowych sendmail jest najczęściej używanym serwerem SMTP do obsługi poczty elektronicznej. Pakiet komercyjny Sendmail obejmuje serwer POP3. Microsoft Exchange zawiera serwer SMTP i można go również skonfigurować do obsługi POP3.
SMTP jest zwykle używany do pracy przez port internetowy 25. Alternatywą dla SMTP, który jest szeroko stosowany w Europie, jest X.400. Wiele serwerów pocztowych obsługuje teraz rozszerzony prosty protokół przesyłania poczty (ESMTP), który umożliwia przesyłanie plików multimedialnych jako wiadomości e-mail.
W latach 60. wykorzystano różne formy komunikacji elektronicznej. Użytkownicy komunikowali się za pomocą systemów utworzonych dla określonych komputerów mainframe. Ponieważ coraz więcej komputerów było ze sobą powiązanych, istniała potrzeba opracowania standardów, które umożliwiają użytkownikom różnych systemów wysyłanie wiadomości e-mail do siebie nawzajem. SMTP wyłonił się z tych standardów opracowanych w 1970 roku.
Dalsze implementacje obejmują FTP Mail Protocol od 1973 roku. Prace rozwojowe kontynuowano w latach 70. XX w., Dopóki w latach 80. ARPANET nie przełączył się na nowoczesny Internet. Następnie John Postel zaproponował protokół przesyłania danych pocztowych.
SMTP zaczęło być szeroko stosowane we wczesnych latach 80-tych. W tym czasie ten protokół był dodatkiem do Uniksa dla program pocztowy Program do kopiowania Unix. Protokół SMTP działa najlepiej, gdy urządzenia wysyłające i odbierające są podłączone do sieci Web, korzystają z mechanizmu przechowywania i wysyłania i są przykładami technologii wypychania.
Wiadomość e-mail jest wysyłana przez klienta poczty (agenta poczty użytkownika, MUA) do serwera pocztowego (agent wysyłający pocztę, MSA) za pomocą protokołu SMTP na porcie TCP 587. Większość dostawców skrzynek pocztowych nadal zezwala na wysyłanie do tradycyjnego portu 25. MSA dostarcza mail do twojego agenta mailowego (agent poczty, MTA). Często te agenty są instancjami wspólnego oprogramowania uruchamianego z różnymi parametrami na tym samym komputerze. Lokalne przetwarzanie może być wykonywane na jednym komputerze lub współdzielone między kilkoma maszynami. Procesy agenta poczty na jednym komputerze mogą udostępniać pliki, ale jeśli przetwarzanie odbywa się na wielu komputerach, wysyłają między sobą wiadomości za pomocą portu SMTP, gdzie każde urządzenie jest skonfigurowane do używania następnego komputera jako inteligentnego hosta.
SMTP to zorientowany na połączenie protokół tekstowy, w którym nadawca komunikuje się z odbiorcą poczty, wydając wiersze poleceń i dostarczając niezbędne dane przez niezawodny, uporządkowany kanał strumienia danych. Sesja SMTP składa się z poleceń utworzonych przez klienta SMTP (agent inicjujący, nadawca lub nadajnik) i odpowiadających im odpowiedzi od serwera SMTP (agent nasłuchujący lub odbiorca). Sesja może zawierać zero lub więcej transakcji SMTP, które składają się z trzech sekwencji poleceń / odpowiedzi:
MAIL (server mail.ru SMTP port), aby ustawić adres zwrotny, zwany również ścieżką powrotu.
RCPT, aby ustawić odbiorcę wiadomości. To polecenie może zostać wydane więcej niż raz, ale raz dla każdego użytkownika.
DANE do sygnalizowania początku tekstu i jego treści. Ten parametr składa się z nagłówka i treści wiadomości, oddzielonych pustą linią. DATA to grupa poleceń, na które serwer odpowiada dwukrotnie: raz dla samego polecenia DATA, aby potwierdzić, że jest gotowe do odbioru danych, ponownie - po zakończeniu sekwencji informacji, aby zaakceptować lub odrzucić całą wiadomość.
Oprócz odpowiedzi pośredniej na dane, odpowiedź każdego serwera może być dodatnia lub ujemna (kod 2xx). Odpowiedzi negatywne mogą być trwałe (kody 5xx) lub przejściowe (kody 4xx). Odchylenie to ciągła awaria, a klient musi wysłać wiadomość o odrzuceniu na serwer, na który ją otrzymała. Upadek jest pozytywną reakcją, po której następuje odrzucenie wiadomości.
SMTP jest tylko protokołem dostarczania. W normalnym użyciu poczta jest wysyłana do docelowego serwera poczty, na przykład do serwera SMTP portu pocztowego. Dane są kierowane na podstawie serwera docelowego, a nie poszczególnych użytkowników, do których są adresowane. Inne protokoły (POP lub IMAP) są specjalnie zaprojektowane do użytku przez indywidualnych użytkowników, którzy otrzymują wiadomości i zarządzają skrzynkami pocztowymi. Protokoły SMTP, POP i IMAP to niedopuszczalne protokoły przekazywania poczty przy użyciu nieregularnie połączonych komputerów. Zostały one zaprojektowane do pracy po ostatecznym dostarczeniu, gdy zostały usunięte informacje o znaczeniu krytycznym dla prawidłowego działania repeatera poczty.
Zdalne uruchamianie kolejki komunikatów jest funkcją SMTP, która umożliwia zdalnemu hostowi rozpoczęcie przetwarzania poczty na serwerze, aby mógł odbierać wiadomości przeznaczone dla niego, wysyłając polecenie TURN. Jednak ta funkcja stanowiła potencjalne ryzyko bezpieczeństwa danych i została udoskonalona w RFC 1985 przez zespół ETRN, który działa bardziej niezawodnie przy użyciu metody uwierzytelniania opartej na informacji o systemie nazw domen.
Użytkownicy, których skrypt nie jest alfabetem łacińskim lub używają znaków akcentowanych spoza zestawu znaków ASCII, mieli trudności z wymaganiem adresu e-mail w alfabecie łacińskim (port SMTP mail.ru). RFC 6531 został stworzony, aby rozwiązać ten problem, zapewniając możliwości internacjonalizacji dla SMTP, rozszerzeń SMTPUTF8 i obsługę znaków wielobajtowych i nie-ASCII w adresach e-mail. Przykłady: znaki diakrytyczne i inne znaki językowe (grecki i chiński). Dotyczy to również portu SMTP Yandex.
Obecne wsparcie dla tego dokumentu jest obecnie ograniczone, ale istnieje duże zainteresowanie powszechnym przyjęciem RFC 6531 i odpowiednich dokumentów RFC w krajach takich jak Chiny, które mają dużą bazę użytkowników, gdzie łacina (ASCII) jest scenariuszem zagranicznym.
Klient poczty e-mail musi znać adres IP swojego źródłowego serwera SMTP. To musi być określone jako część jego konfiguracji (zwykle nazwa DNS). Ten serwer zapewni wiadomości wychodzące od nazwa użytkownika.
Administratorzy serwerów muszą nałożyć określone kontrole na tych klientach, którzy mogą korzystać z serwera. Pozwala to na radzenie sobie z nadużyciami i spamem. Takie rozwiązania były szeroko stosowane:
Wcześniej wiele systemów nakładało ograniczenia na korzystanie z lokalizacji klientów, zezwalając tylko klientom na używanie, których adres IP jest jednym z administratorów serwerów. Używanie z dowolnego innego adresu IP klienta jest zabronione.
Współczesne serwery SMTP zwykle oferują alternatywny system, który wymaga poświadczeń do uwierzytelnienia klientów przed umożliwieniem dostępu.
Komunikacja między serwerami pocztowymi zwykle zawsze korzysta ze standardowego portu TCP 25 przypisanego do SMTP. Jednak klienci poczty e-mail zwykle używają konkretnych portów na porcie smtp ssl. Większość dostawców usług internetowych blokuje obecnie ruch wychodzący od swoich klientów jako środek ochrony przed spamem. Z tego samego powodu przedsiębiorstwa zwykle konfigurują swoją zaporę, aby zezwalać na wychodzący port z wyznaczonych serwerów pocztowych.
Typowy przykład wysyłania wiadomości przez SMTP do dwóch skrzynek pocztowych (alice i theboss) znajdujących się w tej samej domenie pocztowej (example.com lub localhost.com) jest odtwarzany na następnej giełdzie. Po tym, jak nadawca komunikatu (klient SMTP) ustanowi niezawodny kanał komunikacji dla odbiornika wiadomości (serwera SMTP), sesja jest otwierana z serwerem, zwykle zawierającym w pełni kwalifikowaną nazwę domeny (FQDN), w tym przypadku smtp, example lub com. Klient inicjuje jego okno dialogowe odpowiada komendą HELO, która identyfikuje się w parametrze polecenia z pełną nazwą domeny (lub literałem adresu, jeśli nie jest dostępna).
Klienci dowiedzą się, które opcje obsługuje serwer za pomocą powitania EHLO, zamiast oryginalnego HELO. Klienci są zwracani do HELO tylko wtedy, gdy serwer nie obsługuje rozszerzeń SMTP.
Obecni klienci mogą używać słowa kluczowego ESRTP ESRTP do wysyłania zapytań do serwera o maksymalny rozmiar wiadomości do zaakceptowania. Starsi klienci i serwery mogą próbować wysyłać wiadomości o zbyt dużym rozmiarze, które zostaną odrzucone po użyciu zasobów sieciowych, w tym czasu połączenia z łączami sieciowymi.
Oryginalny projekt SMTP nie był w stanie zidentyfikować nadawców ani sprawdzić, czy serwery mogą wysyłać w ich imieniu. W rezultacie możliwe jest używanie podszywania się pod e-mail, które jest powszechnie używane w spamie i phishingu.
Oferty specjalne zmieniają SMTP lub zastępują je całkowicie. Jednym z przykładów jest Internet Mail 2000, ale ani on, ani żaden inny nie odniósł znacznych sukcesów przed efektem sieciowym ogromnej zainstalowanej bazy klasycznego SMTP. Zamiast tego serwery pocztowe używają obecnie różnych metod, takich jak DomainKeys, DomainKeys Identified Mail, Policy Policy Framework i DMARC, DNSBL i szara lista do odrzucania lub kwarantanny podejrzanych wiadomości e-mail.