Tak funkcjonuje e-mail

Mimo nowych możliwości, jakie dają komunikatory, e-mail ciągle zyskuje na popularności i znaczeniu. Z badań rynku przeprowadzonych przez IDC wynika, że w roku 2005 można się spodziewać 36 miliardów e-maili dziennie! W roku 2000 w użyciu było około 505 mln skrzynek poczty elektronicznej, w roku 2005 tą formą komunikacji ma się już posługiwać ok. 1,2 mld użytkowników.

Mimo nowych możliwości, jakie dają komunikatory, e-mail ciągle zyskuje na popularności i znaczeniu. Z badań rynku przeprowadzonych przez IDC wynika, że w roku 2005 można się spodziewać 36 miliardów e-maili dziennie! W roku 2000 w użyciu było około 505 mln skrzynek poczty elektronicznej, w roku 2005 tą formą komunikacji ma się już posługiwać ok. 1,2 mld użytkowników.

A wszystko zaczęło się w roku 1971 w sposób, który trudno byłoby nazwać spektakularnym. Technik w BBN, Ray Tomlinson, przesłał e-mail między dwoma komputerami, które były połączone w sieci ARPAnet. Poszukując rzadko używanego znaku dla wyróżnienia poczty elektronicznej odkrył @ i w ten sposób ustanowił symbol nowej epoki.

Kolejnym krokiem milowym w historii poczty elektronicznej było opracowane w roku 1981 przez Erica Allmana oprogramowanie Sendmail. Umożliwiło ono po raz pierwszy wysyłanie za pomocą programu pocztowego wiadomości jednocześnie do wielu sieci.

Dzisiejszy sukces e-maila był nie do przewidzenia w roku 1971 i wynalazek Thomlinsona zasłużył sobie tylko na kilka wzmianek w prasie. Dziś nie sposób wyobrazić sobie życia bez poczty elektronicznej, a dla wielu ludzi jest ona wręcz warunkiem funkcjonowania.

Poczta elektroniczna opiera się na trzech protokółach - SMTP do wysyłania oraz POP i IMAP do odbioru. Specyfikację każdego protokołu opisano w jednym lub kilku RFC.

SMTP - Simple Mail Transfer Protocol

SMTP - grafika przedstawia drogę e-maila od nadawcy do odbiorcy

SMTP - grafika przedstawia drogę e-maila od nadawcy do odbiorcy

Zadaniem Simple Mail Transfer Protocol (SMTP) jest niezawodny i wydajny transport wiadomości. SMTP jest niezależny od protokołu sieciowego; zwykle stosowany jest standardowy protokół Internetu, TCP. Komunikacja odbywa się przez port 25.

Za wymianę wiadomości odpowiadają tzw. mail transfer agents (MTA). Najbardziej znanym MTA jest Sendmail ( http://www.sendmail.org ). Użytkownik zwykle nie ma z nimi bezpośrednio do czynienia. Dostawą poczty do i z MTA zajmują się klienty pocztowe, takie jak Outlook czy KMail. MTAs komunikują się między sobą za pomocą zwykłych znaków ASCII. Klient wysyła polecenia do serwera, który odpowiada za pomocą kodu numerycznego i opcjonalnego ciągu znaków.

Simple Mail Transfer Protocol ma jednak jedną, istotną wadę - po wysłaniu e-maila nie otrzymuje się żadnej wiadomości o jego dalszych losach. Specyfikacja przewiduje wprawdzie powiadomienie nadawcy w sytuacji, gdy wiadomość nie może być dostarczona. Nie jest określone jednoznacznie, jak taka wiadomość ma wyglądać. Zwykle jest to e-mail z komunikatem o błędzie i nagłówkiem niedostarczonej wiadomości. Ze względu na brak standardu w praktyce rzadko udaje się ustalić, gdzie i dlaczego wystąpił błąd.

Dlatego też opracowano rozszerzenie SMTP, definiujące standardowe powiadomienia o błędach. Ponieważ bardzo niewiele serwerów obsługuje obecnie to rozszerzenie, nie będziemy go bliżej omawiać. Zainteresowani mogą znaleźć więcej informacji w RFC 1891 i 1894.

SMTP - polecenia

Polecenia SMTP definiują przesył e-maili. Zgodnie ze specyfikacją implementacja SMTP musi obsługiwać co najmniej osiem poleceń (patrz tabela).

SMTP - kody odpowiedzi

Kody odpowiedzi SMTP gwarantują, że klient jest na bieżąco informowany o statusie serwera. Każde polecenie wymaga kodu odpowiedzi od serwera. Klient decyduje o sposobie dalszego postępowania wyłącznie na podstawie otrzymanych zwrotnie kodów numerycznych.

W dalszej części opiszemy budowę e-maila.

SMTP - koperta, nagłówek i treść

E-mail składa się z trzech części:

  • koperty, która zawiera dane nadawcy i odbiorcy wiadomości; koperta jest niezbędna dla mail transfer agents;
  • nagłówka, w którym klient pocztowy zamieszcza dalsze informacje, jak identyfikator klienta czy wiadomości;
  • treści, czyli właściwego tekstu wiadomości. Zgodnie z RFC 822, treść ma postać czystego tekstu ASCII.
W trakcie wysyłania e-maila za pomocą polecenia DATA klient pocztowy przesyła nagłówek oraz treść oddzieloną od nagłówka jednym pustym wierszem. Żaden przesyłany wiersz nie może być dłuższy niż 1000 bajtów.

Poniżej przykładowy nagłówek:

Received: by xyz.de. id AA00502; Mon, 19 Nov 2001 12:47:32 +0100

Received: from adam1 (715684625313-0001@[192.168.80.201]) by fwd00.xyz.de with smtp id 166Cyz-1KXYRsC; Tue, 20 Nov 2001 16:38:45 +0100

From: adam@xyz.de (Adam)

To: eva@test.de (Eva)

Subject: Beispiel-Mail

Date: Mon, 19 Nov 2001 12:47:31 +0100

Reply-To: adam@xyz.de

Message-ID: <9307191947AA00502.Adam@xyz.de>

MIME-Version: 1.0

Content-Type: text/plain; charset="iso-8859-1"

Content-Transfer-Encoding: 8bit

X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)

W wierszu "Received" wpisywane są wszystkie serwery SMTP, przez które e-mail przeszedł na drodze od nadawcy do odbiorcy. Każda wiadomość otrzymuje jednoznaczny identyfikator, Message-ID. Jest to najczęściej kombinacja cyfr i liczb, po której następuje adres hosta nadawcy. Wiersze rozpoczynające się od "X" to z reguły informacje dodane przez klienta pocztowego, które nie są niezbędne do przesłania wiadomości. Wiersze "Mime-Version", "Content-Type" oraz "Content-Transfer-Encoding" charakteryzują e-mail zgodny z MIME. Pozostałe wiersze, jak "Date" czy "Subject", nie wymagają chyba oddzielnych objaśnień.


Zobacz również