Simple Mail Transfer Protocol
SMTP(ang.Simple Mail Transfer Protocol) –protokół komunikacyjnyopisujący sposób przekazywaniapoczty elektronicznejwInternecie.Standard został zdefiniowany w dokumencieRFC 821 ↓,a następnie zaktualizowany w 2008 roku w dokumencieRFC 5321 ↓.
Opis
edytujSMTP to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego odbiorcę wiadomości (w większości przypadków weryfikowane jest jego istnienie), a następnie przekazuje treść wiadomości. DemonSMTP działa najczęściej na porcie 25. Można przetestowaćserwerSMTP przy użyciuprogramutelnet.
Historia
edytujSMTP zaczęło być szeroko używane we wczesnych latach osiemdziesiątych dwudziestego wieku. W tamtym okresie było to uzupełnienieUUCP,który lepiej sprawdzał się przy przekazywaniu poczty między maszynami posiadającymi jedynie okresowe połączenie. SMTP natomiast lepiej działa, gdy zarówno maszyna nadająca, jak i odbierająca są na stałe przyłączone do sieci.
Jednym z pierwszychprogramów poczty elektronicznej(jeśli nie pierwszym), w którym zastosowano SMTP byłsendmail.Wroku 2001istniało przynajmniej 50 programów implementujących SMTP jako klient (nadawca) lub serwer (odbiorca wiadomości). Niektóre inne popularne programy serwerów SMTP toexim,Postfix,Qmail,MDaemon,GroupWisefirmyNovelliMicrosoft Exchange.
Protokół ten nie radził sobie dobrze z plikami binarnymi, ponieważ stworzony był w oparciu o czysty tekstASCII.W celu kodowania plików binarnych do przesyłu przez SMTP stworzono standardy takie jakMIME.W dzisiejszych czasach większość serwerów SMTP obsługuje rozszerzenie 8BITMIME pozwalające przesyłać pliki binarne równie łatwo jak tekst.
SMTP nie pozwala na pobieranie wiadomości ze zdalnego serwera. Do tego celu służąPOP3lubIMAP.
Ograniczenia
edytujJednym z ograniczeń pierwotnego SMTP jest brak mechanizmu weryfikacji nadawcy, co ułatwia rozpowszechnianie niepożądanych treści poprzez pocztę elektroniczną (wirusy komputerowe,spam). Żeby temu zaradzić stworzono rozszerzenieSMTP-AUTH,które jednak jest tylko częściowym rozwiązaniem problemu - ogranicza wykorzystanie serwera wymagającegoautoryzacjido zwielokrotniania poczty. Nadal nie istnieje metoda, dzięki której odbiorca uwierzytelniłby nadawcę – nadawca może "udawać" serwer i wysłać dowolny komunikat do dowolnego odbiorcy.
Przykład sesji SMTP
edytujPoniżej przedstawiona jest przykładowa sesja SMTP (z serweremexim), w której klient kolejno:
- rozpoczyna połączenie z serwerem (poleceniehelo),
- podaje adres nadawcy (poleceniemail from),
- podaje adres odbiorcy (poleceniercpt to),
- wpisuje wiadomość (poleceniedata),
- kończy sesję (poleceniequit).
Podane nazwy i adresy użytkowników i serwerów są przykładowe.
220 serwer ESMTP Exim 4.43 Wed, 12 Jan 2005 23:14:13 +0100 helo serwer.email.com 250 uzytkownik.internet.com Hello uzytkownik at uzytkownik.internet.com [1.1.1.1] mail from: <[email protected]> 250 OK rcpt to: <[email protected]> 250 Accepted data 354 Enter message, ending with "." on a line by itself Date: 03 Jan 07 21:21:21 From: [email protected] To: [email protected] Subject: temat wiadomosci tresc wiadomosci . 250 OK id=1Coql6-0003Qi-MP quit 221 serwer.email.com closing connection
Wprowadzanie treści wiadomości kończy się kropką, po której znajduje się znak nowej linii.
Dokumenty RFC
edytuj- RFC 2821 ↓- definicja SMTP, zastąpił starszeRFC 821 ↓
- RFC 1869 ↓- określa ramy dla rozszerzeń SMTP (ESMTP), pozwalające klientom i serwerom rozpoznać nawzajem swoje możliwości
- RFC 1891 ↓- rozszerzenie SMTP o potwierdzenie odbioru
Zobacz też
edytujLinki zewnętrzne
edytuj- JonPostel,Simple Mail Transfer Protocol,STD 10,RFC821,IETF,sierpień 1982,DOI:10.17487/RFC0821,ISSN2070-1721,OCLC943595667(ang.).
- J.Klensini inni,SMTP Service Extensions,STD 10,RFC1869,IETF,listopad 1995,DOI:10.17487/RFC1869,ISSN2070-1721,OCLC943595667(ang.).
- K.Moore ,SMTP Service Extension for Delivery Status Notifications,RFC1891,IETF,styczeń 1996,DOI:10.17487/RFC1891,ISSN2070-1721,OCLC943595667(ang.).
- J.Klensin ,Simple Mail Transfer Protocol,RFC2821,IETF,kwiecień 2001,DOI:10.17487/RFC2821,ISSN2070-1721,OCLC943595667(ang.).
- J.Klensin ,Simple Mail Transfer Protocol,RFC5321,IETF,październik 2008,DOI:10.17487/RFC5321,ISSN2070-1721,OCLC943595667(ang.).