Listy w Pajęczynie

Dzięki dostępnym w Internecie darmowym serwerom własny adres e-mailowy stał się czymś tak powszechnym jak kod pocztowy. U podstaw tej popularności leżą główne założenia protokołów pocztowych, a dokładniej ich prostota. Czy jednak na obecnym etapie rozwoju tej technologii nadal można mówić o nieskomplikowanych zasadach działania? Początkujący użytkownik z pewnością zgubi się już po poznaniu skrótów opisujących mechanizmy wykorzystywane do przesyłania wiadomości, takich jak: POP3, SMTP, Webmail, IMAP, SPAM, quota, SSL itp. W artykule postaram się uporządkować podstawową wiedzę na temat funkcjonowania poczty elektronicznej.

Trochę historii

Już w latach sześćdziesiątych ubiegłego wieku na komputerach uniwersyteckich w Stanach Zjednoczonych pracownicy zostawiali sobie w umówionych wcześniej katalogach wiadomości w plikach tekstowych. Zbiory te nazywano w taki sposób, żeby odbiorca mógł łatwo zidentyfikować ten z komunikatami dla siebie, na przykład dla_Piotra_z_IT.txt. W 1965 roku Noel Morris, pracownik jednej z uczelni w USA, napisał program mail. który pozwalał na automatyczne kopiowanie plików do katalogów domowych użytkowników komputera. Dodatkowo po zalogowaniu się wyświetlał on komunikat “You have new mail”.

Dopiero w 1971 roku inżynier Ray Tomlinson wysyła pierwszego maila do innego komputera w sieci. Dotychczas było to niemożliwe, ponadto właśnie ten e-list zawierał po raz pierwszy znaczek “@”. Mechanizm wysyłania wiadomości był wtedy podobny do zasady działania FTP (File Transfer Protocol). Dało to jednak solidne podstawy do stworzenia w 1982 roku zupełnie nowego protokołu – SMTP (Simple Mail Transfer Protocol). Rok później udostępniono oprogramowanie sendmail dla systemu operacyjnego BSD, które w wielokrotnie zmodyfikowanej formie działa do dzisiaj na wielu serwerach pocztowych.

Kręta droga

Każdy mail wysyłany z naszego komputera musi przebyć długą drogę, prowadzącą niejednokrotnie przez kilkanaście serwerów poczty elektronicznej, by ostatecznie trafić na serwer pocztowy adresata listu. Wszystkie maszyny napotkane po drodze przez naszą przesyłkę pocztową korzystają z protokołu SMTP (Simple Mail Transfer Protocol). Jakie hosty odwiedził nasz e-mail, można odczytać z nagłówka wiadomości, który jest dołączony do każdego listu. Analizę takich nagłówków opisujemy w ramce w dalszej części artykułu ($(LC126994: Analiza nagłówków pocztowych)$).

Gdy serwer SMTP otrzyma list do przesłania, a skrzynka odbiorcy nie znajduje się wśród lokalnych użytkowników, następuje przekazanie wiadomości (e-mail relaying) do innego serwera SMTP, który jest jak najbliżej adresata listu. Dlatego serwer SMTP, z którego został wysłany e-mail, kontaktuje się z serwerem nazw DNS i sprawdza wpisy MX (mail exchange) dla adresu, na który został zaadresowany list. Na przykład dla domeny watson.net w polu MX znajduje się aktualna lista serwerów SMTP, które akceptują e-maile dla podanego odbiorcy. Serwer SMTP o najwyższym priorytecie jest właściwym komputerem, na którym jest umieszczone konto adresata, pozostałe serwery SMTP mogą natomiast pełnić rolę zapasową i odbierać pocztę w wypadku wyłączenia aktualnego serwera SMTP. Po jego powrocie do normalnej pracy otrzyma on całą zgromadzoną lokalnie pocztę. Podczas przesyłania wiadomości może być ona przekazywana pomiędzy hostami w Sieci zgodnie z kilkoma scenariuszami:

-serwer nadawcy może się skontaktować z serwerem odbiorcy i przesyła mu pocztę bezpośrednio;

-serwer nadawcy nie może skontaktować się z serwerem odbiorcy (awaria serwera, przeciążenie itp.), więc próbuje przekazać list do serwera zapasowego;

-serwer nadawcy nie może połączyć się z Internetem i przekazuje e-mail do wysłania do swojej kolejki wiadomości, a następnie próbuje ją wysłać we wcześniej ustalonych odstępach czasu, na przykład co 30 minut.

Po dotarciu do właściwego serwera pocztowego wiadomość zostaje skopiowana do skrzynki adresata, skąd ten może ją odebrać, korzystając na przykład z klienta poczty elektronicznej zainstalowanego na własnym komputerze.

Elektroniczne czytanie

Protokół POP (Post Office Protocol), obecnie używany w wersji POP3, pozwala odbierać wiadomości przekazane przez serwer SMTP. E-maile przechowywane są w formie plików tekstowych, dzięki czemu przeczytamy je nawet z użyciem klienta telnet. Mimo że POP3 nie charakteryzuje się zbyt bogatym wachlarzem funkcji, jest najczęściej stosowanym protokołem w aplikacjach do odbioru poczty (MUA). Dla osób poszukujących większej funkcjonalności stworzono protokół IMAP (Internet Message Access Protocol). Koncepcja przechowywania wiadomości w tym protokole jest odmienna. Tutaj wiadomości są przechowywane cały czas na serwerze i w celu lepszego organizowania przychodzących e-maili wykorzystywane są katalogi. Możliwe jest także przeszukiwanie wiadomości bez ich pobierania na dysk naszego peceta. Dzięki temu z jednego konta pocztowego skorzystamy na różnych komputerach i zawsze będziemy mieli wgląd do pełnej bazy e-maili. Nie występuje problem synchronizacji skrzynek pomiędzy np. komputerem w domu i w pracy.

Klient pocztowy łączy się z serwerem IMAP, używając portu 143. Po połączeniu przesyłany jest szereg komend mających na celu utworzenie listy katalogów na serwerze czy też spisu wiadomości. Oczywiście autorzy protokołu zabezpieczyli się przed sytuacją, w której nie mamy połączenia z Internetem, a chcemy odczytać jakąś wiadomość zapisaną w skrzynce odbiorczej. Większość klientów pocztowych współpracujących z serwerami IMAP tworzy kopię wiadomości na lokalnym dysku komputera, eliminując w ten sposób zagrożenie braku dostępu do poczty.

Skutki prehistorii

Dotychczas całkowicie pomijaliśmy sprawę załączników do listów wysyłanych z naszego PC-ta. Ponieważ skrzynki o pojemności 1 GB nie są już niczym zaskakującym, kilkumegabajtowe załączniki mogą być bez problemów dodawane do wiadomości. Do listu dołączymy dowolny rodzaj pliku, począwszy od zbiorów tekstowych, a skończywszy na zdjęciach czy nawet krótkich filmach. Początkowo poważnym problemem podczas ich przesyłania było ograniczenie dotyczące stosowanych w wiadomościach znaków do 7 bitów. Dlatego zbiory binarne należało przed wysłaniem samodzielnie przekonwertować do formatu UUE, który odwzorowywał kod binarny (8 bitów) na znaki tekstowe (7 bitów). Obecnie klienty poczty elektronicznej same wykonują takie przekształcania i stosują znacznie efektywniejsze kodowanie, np. Base64. Użytkownik wysyłający zdjęcia w e-mailu nie musi więc sobie zaprzątać głowy ich kodowaniem.

Skąd się wziął znak “@”?
Ray Tomlinson w latach siedemdziesiątych był zatrudniony w Cambridge w BBN Technologies – firmie, która stworzyła ARPANET, czyli zalążek Internetu. Tomlinson pracował nad programem SNDMSG, który miał pozwalać na pozostawianie wiadomości dla innych użytkowników tego samego komputera (można powiedzieć, że była to wersja e-maila dla pojedynczej maszyny). W tym samym czasie zajmował się on również testowaniem programu CYPNET, który z kolei pozwalał na przesyłanie plików na inne komputery komunikujące się ze sobą poprzez sieć ARPANET. Połączenie ze sobą tych dwóch projektów pozwoliło na łatwe przesyłanie wiadomości w sieci. W czasie eksperymentów z użyciem opracowywanych narzędzi pojawił się problem adresowania e-maili wychodzących na zewnątrz. Tomlinson, analizując klawiaturę, szukał symbolu, który nie pojawia się w imionach ludzi i nie jest cyfrą. Wybór padł na znaczek “@”. Chociaż ten symbol pozostaje w użyciu już przez 30 lat, to – jak mówi sam Tomlinson – wymyślenie go zajęło mu około 30 sekund. Obecnie Ray Tomlinson nadal pracuje w firmie BBN i zajmuje się tworzeniem oprogramowania logistycznego.

Metody czytania/odbierania poczty
Poczta przez WWWIMAPPOP3
Dostęp z dowolnego miejsca ++
Duże wykorzystanie dysku serwera++
Zależność od połączenia z Internetemdużadużaśrednia
Wyspecjalizowane oprogramowanie++
Zabezpieczanie przed utratą danychdostawca usługidostawca usługi użytkownik
Bezpieczeństwozależne od dostawcy usługizależne od dostawcy usługizależne od dostawcy usługi
+ – tak; – – nie
Więcej:bezcatnews