Usługi

Protokoły Poczty Elektronicznej

Jak działa e-mail: SMTP do wysyłania, POP i IMAP do odbierania.

Wprowadzenie: jak działa poczta elektroniczna

Poczta elektroniczna, czyli e-mail, jest podstawową usługą internetową. Użytkownik tworzy wiadomość, podaje adres odbiorcy i wysyła ją z klienta pocztowego. Wiadomość składa się z nagłówków i treści, a załączniki mogą być kodowane przez MIME. Dostarczenie wymaga współpracy kilku programów oraz protokołów działających na kolejnych serwerach.

Dostarczenie pojedynczej wiadomości e-mail może przebiegać przez kilka serwerów. System wykorzystuje model , w którym wiadomość jest tymczasowo zapisywana w węźle pośrednim i przekazywana dalej, gdy kolejny serwer jest dostępny. Serwer może umieścić wiadomość w kolejce i ponawiać próbę po błędzie przejściowym. Model ten pozwala kontynuować obsługę poczty przy czasowej niedostępności części sieci. Protokoły pocztowe określają osobne procedury wysyłania wiadomości, przekazywania jej między serwerami i odczytywania zawartości skrzynki.

Role komponentów poczty elektronicznej

Obsługa wiadomości e-mail obejmuje trzy role programowych agentów działających po stronie klienta i serwerów. Rozdzielają one tworzenie, przekazywanie i końcowe umieszczenie wiadomości w skrzynce.

  • 1. Agent użytkownika poczty (MUA): klient

    MUA to program, z którym bezpośrednio pracuje użytkownik. Może to być aplikacja komputerowa, taka jak Microsoft Outlook, Apple Mail czy Thunderbird, albo interfejs webowy, taki jak Gmail czy Poczta WP, dostępny przez przeglądarkę. MUA pomaga tworzyć wiadomości, czytać przychodzące e-maile, zarządzać korespondencją w folderach oraz komunikować się z serwerami pocztowymi w celu wysyłania i pobierania wiadomości. Może też przechowywać lokalną kopię pobranych danych. Z perspektywy użytkownika obsługuje tworzenie i odczyt wiadomości.

  • 2. Agent transferu poczty (MTA): serwer przekazujący

    MTA to oprogramowanie serwerowe, które odbiera e-mail od MUA lub innego MTA i przekazuje go w kierunku serwera docelowego. Po otrzymaniu wiadomości MTA analizuje adres odbiorcy, używa rekordów DNS, w szczególności MX, do ustalenia kolejnego serwera pocztowego i przekazuje wiadomość dalej. Przy przejściowym błędzie może zachować wiadomość w kolejce i spróbować ponownie. E-mail może przejść przez kilka MTA.

  • 3. Agent dostarczania poczty (MDA): umieszczanie w skrzynce

    MDA wykonuje końcową dostawę po stronie serwera. Gdy e-mail dotrze do docelowego serwera odbiorcy, MDA umieszcza go w skrzynce właściwego użytkownika. W zależności od implementacji może też filtrować spam, skanować wiadomości pod kątem złośliwego oprogramowania oraz stosować reguły sortowania do wybranego folderu.

Protokół wysyłania: SMTP (Simple Mail Transfer Protocol)

Protokół SMTP (Simple Mail Transfer Protocol) definiuje polecenia i odpowiedzi używane do wysyłania oraz przekazywania wiadomości e-mail między klientami i serwerami pocztowymi. Stosuje się go zarówno przy przesyłaniu wiadomości między serwerami, jak i przy zgłoszeniu wiadomości przez klienta. Przyjęcie wiadomości przez jeden serwer nie oznacza jeszcze jej końcowego dostarczenia.

Kluczowe cechy SMTP

  • Protokół "Push":SMTP jest protokołem typu "push". Służy do przekazywania wiadomości od nadawcy do odbiorcy. Klient MUA przekazuje wiadomość do swojego MTA, a ten do kolejnego MTA. Pobieraniem wiadomości ze skrzynki zajmują się POP i IMAP.
  • Połączeniowy i Niezawodny: SMTP korzysta zwykle z Protokołu Kontroli Transmisji (TCP), który zapewnia uporządkowany i niezawodny strumień bajtów. Odpowiedzi SMTP określają wynik transakcji, w tym przyjęcie lub odrzucenie wiadomości. TCP dostarcza dane do połączenia, lecz o losie wiadomości decydują także serwery SMTP i ich kolejki.
  • Standardowe Porty: SMTP używa określonych portów sieciowych do komunikacji:
    • Port 25: Tradycyjny port używany do przekazywania poczty między serwerami MTA. Jest przeznaczony głównie do ruchu serwer-serwer.
    • Port 587: Standardowy port przesyłania poczty przez MUA do serwera MTA. W konfiguracjach tego portu zwykle stosuje się uwierzytelnianie i STARTTLS.
    • Port 465: Port przesyłania poczty z niejawnym TLS. Uścisk dłoni TLS rozpoczyna się przed wymianą poleceń SMTP.
  • Komunikacja Tekstowa: Polecenia SMTP i odpowiedzi serwera są tekstowe i mają format liniowy. Wiadomość e-mail zawiera nagłówki oraz treść zgodną z RFC 5322, a MIME może kodować w niej załączniki i inne dane. Wymiana poleceń i odpowiedzi jest oddzielona od właściwej treści wiadomości.

Typowa konwersacja SMTP (polecenia)

Komunikacja między klientem a serwerem SMTP ma ustaloną kolejność poleceń i odpowiedzi. Serwer odpowiada kodami wskazującymi powodzenie, błąd przejściowy lub błąd trwały. Przykładowe polecenia to:

  • HELO / EHLO: Klient rozpoczyna sesję, przedstawiając się. 'EHLO' (Extended HELO) dodatkowo żąda listy rozszerzeń obsługiwanych przez serwer.
  • MAIL FROM: Klient określa adres e-mail nadawcy. To polecenie rozpoczyna transakcję pocztową.
  • RCPT TO: Klient określa adres e-mail odbiorcy. Polecenie to może być wydane wielokrotnie, jeśli jest kilku odbiorców.
  • DATA: Po określeniu odbiorców, klient wysyła polecenie 'DATA', aby zasygnalizować, że jest gotów do przesłania właściwej treści e-maila (nagłówków i treści).
  • QUIT: Klient wysyła to polecenie, aby zakończyć sesję SMTP w sposób uporządkowany.

Protokoły odbierania: POP3 i IMAP

Gdy MDA umieści e-mail w skrzynce serwera odbiorcy, MUA potrzebuje protokołu do jego pobrania. POP3 i IMAP zapewniają różne modele dostępu do skrzynki pocztowej. POP3 skupia się na pobieraniu wiadomości, a IMAP udostępnia także foldery i stan wiadomości na serwerze.

POP (Post Office Protocol) i POP3 (Wersja 3)

POP należy do starszych i prostszych protokołów pobierania poczty. Najczęściej spotykaną wersją jest POP3. Protokół pobiera wiadomości z serwera do klienta, zgodnie z ustawieniami tego klienta. Sesja POP3 obejmuje fazę autoryzacji, pobierania i aktualizacji skrzynki.

Model POP3: pobierz i usuń

Typowy wariant pracy POP3 polega na tym, że klient e-mail (MUA) łączy się z serwerem, pobiera nowe wiadomości na urządzenie lokalne (komputer lub telefon), a następnie usuwa je z serwera. Przy takich ustawieniach główna kopia e-maili znajduje się na urządzeniu lokalnym. Klient może wysyłać polecenia pobrania wiadomości i oznaczenia ich do usunięcia, a serwer usuwa oznaczone wiadomości po przejściu sesji do fazy aktualizacji skrzynki.

  • Dostęp Offline: Po pobraniu wiadomości klient może je czytać i nimi zarządzać bez aktywnego połączenia z Internetem.
  • Miejsce na Serwerze: Wariant usuwający wiadomości po pobraniu zajmuje mało miejsca na serwerze.
  • Opcja "Zostaw kopię": Większość klientów pozwala pozostawić kopię wiadomości na serwerze przez określony czas. Opcja ta nie synchronizuje wspólnego stanu skrzynki między urządzeniami. E-mail przeczytany na komputerze może nadal wyglądać na nieprzeczytany w telefonie, a wiadomość usunięta w telefonie może pozostać na komputerze. Foldery i elementy wysłane nie są w ten sposób synchronizowane.
  • Standardowe Porty: POP3 używa dla połączeń nieszyfrowanych oraz dla bezpiecznych połączeń z niejawnym TLS (POP3S), w których uzgadnianie TLS rozpoczyna się przed poleceniami POP3. Ochrona transportu wymaga TLS na odpowiednim porcie lub połączeniu skonfigurowanym przez dostawcę.

POP3: POP3 to prosty, starszy protokół odpowiedni dla użytkowników korzystających z jednego głównego urządzenia i utrzymujących lokalne archiwum wiadomości. Przy wielu urządzeniach nie zapewnia wspólnego stanu folderów i wiadomości.

IMAP (Internet Message Access Protocol)

IMAP zaprojektowano do zarządzania pocztą przechowywaną na serwerze, szczególnie przy dostępie z wielu urządzeń. Protokół udostępnia klientowi stan skrzynki oraz operacje na wiadomościach i folderach. Klient może wybrać skrzynkę, pobierać jej dane i aktualizować flagi wiadomości.

Model IMAP: zdalna skrzynka synchronizowana

W przypadku IMAP e-maile i struktura folderów są przechowywane na serwerze. Klient e-mail (MUA) odczytuje stan skrzynki i wysyła operacje na wiadomościach, takie jak oznaczenie jako przeczytanej, przeniesienie lub usunięcie. Serwer przechowuje te zmiany, a pozostałe urządzenia mogą je odzwierciedlić podczas kolejnej synchronizacji.

  • Synchronizacja Stanu: Status przeczytane/nieprzeczytane, usunięcia, wersje robocze, elementy wysłane i hierarchia folderów są przechowywane na serwerze oraz udostępniane klientom na komputerze, telefonie i w poczcie webowej podczas synchronizacji.
  • Przechowywanie na Serwerze: Wiadomości pozostają na serwerze i są tam centralnie przechowywane. Dostawca może wykonywać kopie zapasowe, zależnie od usługi. Awaria lokalnego komputera nie usuwa kopii znajdującej się na serwerze.
  • Częściowe Pobieranie: IMAP pozwala MUA pobrać najpierw same nagłówki, aby przejrzeć skrzynkę bez pobierania dużych załączników. Następnie klient może pobrać pełną treść i załączniki wybranych e-maili. Ogranicza to transfer na urządzeniach mobilnych i przy wolniejszych połączeniach.
  • Zarządzanie Stanem: IMAP śledzi stany wiadomości za pomocą flag, takich jak '\Seen' (przeczytana), '\Answered' (odpowiedziana), '\Flagged' (oznaczona gwiazdką) i '\Deleted' (oznaczona do usunięcia). Operacja EXPUNGE usuwa wiadomości oznaczone tą flagą, a flagi są synchronizowane między wszystkimi klientami.
  • Standardowe Porty: IMAP używa dla połączeń nieszyfrowanych oraz dla bezpiecznych połączeń z niejawnym TLS (IMAPS). Port 143 może także rozpocząć sesję bez ochrony i przejść do TLS zgodnie z możliwościami serwera.

IMAP: IMAP pasuje do dostępu do poczty z wielu urządzeń, ponieważ przechowuje stan skrzynki na serwerze i udostępnia go klientom. Klient może dodatkowo przechowywać lokalny cache do odczytu offline, lecz zmiany stanu trafiają na serwer dopiero po synchronizacji. Serwer pozostaje miejscem odniesienia dla wspólnego stanu skrzynki. Pełna synchronizacja wymaga okresowych połączeń z serwerem, a wiadomości zajmują jego przestrzeń.

Powiązane artykuły