HELO/EHLO to zestawienie dwóch poleceń inicjujących sesję SMTP — podstawowego i jego rozszerzonej wersji.
HELO i EHLO jako pierwszy krok sesji SMTP
HELO i EHLO są poleceniami używanymi przez klienta SMTP na początku komunikacji z serwerem pocztowym. Klientem może być program pocztowy, usługa systemowa albo inny program wysyłający wiadomości. Po nawiązaniu połączenia TCP z serwerem, zazwyczaj na porcie 25, 587 albo 465 zależnie od sposobu zestawiania i zabezpieczania połączenia, klient oczekuje na powitanie serwera z kodem odpowiedzi 220. Następnie wysyła polecenie identyfikujące się wobec drugiej strony.
Starsze polecenie HELO pochodzi z podstawowej wersji protokołu SMTP opisanej w RFC 5321. Jego składnia ma postać HELO nazwa-hosta, gdzie klient przekazuje swoją nazwę domenową albo nazwę używaną w danym środowisku. Serwer odpowiada kodem 250, jeśli akceptuje rozpoczęcie sesji. Sama odpowiedź na HELO nie oznacza jeszcze uwierzytelnienia użytkownika, zgody na wysłanie wiadomości ani przyjęcia konkretnego adresu nadawcy.
Rozszerzenia ujawniane po komendzie EHLO
EHLO jest rozszerzoną wersją powitania wprowadzoną przez standard ESMTP. Po wysłaniu polecenia EHLO nazwa-hosta serwer może zwrócić wielowierszową odpowiedź z kodem 250. Poszczególne wiersze wymieniają obsługiwane rozszerzenia SMTP, na przykład SIZE dla limitu rozmiaru wiadomości, STARTTLS dla możliwości rozpoczęcia szyfrowania w ramach istniejącego połączenia, AUTH dla metod uwierzytelniania oraz 8BITMIME dla transmisji danych z użyciem ośmiobitowych znaków w treści zgodnie z zasadami danego rozszerzenia.
Lista po EHLO ma znaczenie praktyczne, ponieważ klient powinien dostosować dalszą komunikację do możliwości konkretnego serwera. Jeżeli serwer ogłasza STARTTLS, klient może zażądać przejścia do kanału TLS poleceniem STARTTLS, a po pomyślnym zakończeniu negocjacji powinien ponownie wysłać EHLO. Ponowne powitanie jest wymagane, ponieważ po ustanowieniu szyfrowania zestaw dostępnych rozszerzeń może być inny niż przed szyfrowaniem. Serwer może na przykład ujawnić możliwość AUTH dopiero po aktywowaniu TLS.
Odpowiedzi serwera i zachowanie klienta SMTP
Poprawna odpowiedź na EHLO ma kod 250 i może zawierać nazwę serwera oraz listę rozszerzeń. Jeżeli serwer nie rozpoznaje rozszerzonego polecenia albo nie obsługuje ESMTP, może zwrócić błąd, często z kodem 500 lub 502. W takiej sytuacji klient może spróbować użyć HELO, ponieważ jest to podstawowe polecenie SMTP. Przejście na HELO oznacza jednak utratę informacji o rozszerzeniach ESMTP. Klient nie powinien wtedy zakładać, że działają funkcje, których serwer nie zgłosił.
Po zaakceptowaniu HELO albo EHLO sesja przechodzi do kolejnych etapów. Klient może użyć MAIL FROM: do wskazania adresu kopertowego nadawcy, następnie jednego lub wielu poleceń RCPT TO: dla odbiorców, a później DATA do rozpoczęcia przesyłania wiadomości zakończonej sekwencją <CRLF>.<CRLF>. Uwierzytelnienie, jeśli jest wymagane, odbywa się osobnym poleceniem, zwykle po sprawdzeniu obsługi AUTH. Zakończenie sesji następuje po wysłaniu QUIT, na które serwer odpowiada kodem 221.
HELO/EHLO w logach programów pocztowych
W logach klienta lub serwera warto rozróżniać kilka sytuacji. Błąd bezpośrednio po EHLO może wskazywać na niezgodność protokołu, nieprawidłową nazwę hosta, błędnie wybrany port albo połączenie skierowane do usługi, która nie mówi SMTP. Z kolei prawidłowe 250 po EHLO, a następnie odrzucenie AUTH, MAIL FROM lub RCPT TO, oznacza problem na dalszym etapie, a nie z samym powitaniem. Kod 530 często informuje o konieczności uwierzytelnienia albo wcześniejszego użycia TLS, natomiast kody z grupy 5xx oznaczają trwałe odrzucenie żądania.
Podczas diagnostyki na laptopie lub komputerze PC należy sprawdzić, czy program pocztowy korzysta z właściwego typu połączenia i portu, czy nie przerywa komunikacji po odpowiedzi serwera oraz czy po STARTTLS ponawia EHLO. Przydatne są pełne logi sesji, ponieważ pojedynczy komunikat „błąd SMTP” nie pokazuje, na którym poleceniu wystąpiła odmowa. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a w ramach diagnostyki może przeanalizować konfigurację klienta pocztowego oraz komunikację aplikacji z usługą SMTP.