Wysyłanie i odbieranie wiadomości e-mail przez Telnet

0

Czy miałeś kiedyś potrzebę sprawdzenia bardzo ważnego e-maila i nie miałeś pod ręką skonfigurowanego klienta poczty? Dla wielu jest to problem nie do pokonania, dla kogoś, kto zna Telnet – żaden!

Załóżmy, że masz konto e-mail o nazwie franek@poczta.pl w domenie Poczta.pl. Serwer odbioru poczty nazywa się pop3.poczta.pl, wysyłanie poczty odbywa się poprzez smtp.poczta.pl, hasło do skrzynki e-mail brzmi alamakota. W tym celu wykonajcie następujące czynności:

  • Uruchom telnet.
  • Wpisz open pop3.poczta.pl 110.
  • Po zgłoszeniu się serwera wpisz USER login, gdzie login to nazwa konta (np. USER franek).
  • Następnie wpisz PASS hasło, oczywiście podając hasło do skrzynki e-mail (czyli np. PASS alamakota).
  • Jeżeli dane będą poprawne, serwer poinformuje o zawartości skrzynki, czyli liczbie e-maili.
  • Jeżeli chcesz odczytać np. 50 e-mail, wystarczy podać komendę RETR 50.
  • Po obejrzeniu e-maila zakończ sesję poleceniem QUIT.

Liczba 110 oznacza tzw. port działania usługi. Na jednym komputerze jednocześnie może działać bardzo dużo różnych usług – poprzez numer portu określacie typ tej, z której chcesz skorzystać. Np. odbieranie e-maili odbywa się standardowo na porcie 110, wysyłanie na 25, przeglądanie stron WWW to port 80, grupy dyskusyjne 119 itd. Podobnie jak w mieszkaniu, gdzie w zależności od wyboru drzwi można skorzystać z różnych jego funkcji (drzwi na lewo to sypialnia, na prawo kuchnia, a prosto to wyjście na zewnątrz).

Przykładowa sesja może wyglądać więc mniej więcej tak:

+OK POP3 [213.180.130.206] 1.20 server ready
USER franek
+OK User name accepted, password please
PASS alamakota
+OK Mailbox open, 485 messages, new: 485, your primary account: franek@poczta.pl, message quota: 0 kB
RETR 485
+OK 1489
(tu informacje m.in. o trasie e-maila)
Treść e-maila
.QUIT
+OK Sayonara
Connection closed by foreign host.

Prawda, że proste? Dokładnie w identyczny sposób działają wszystkie programy do obsługi poczty, z tą różnicą, że wszystkie polecenia podawane są automatycznie, bez ingerencji użytkownika. Komendy wykorzystywane do odbioru poczty przedstawione są w tabeli 2.

Wybrane polecenia protokołu odbioru poczty (POP3):

  • USER nazwa – zalogowanie się na serwerze pod daną nazwą użytkownika
  • PASS hasło – podanie hasła do skrzynki pocztowej
  • STAT – wyświetla informacje o skrzynce e-mail, liczbie i rozmiarze wszystkich wiadomości
  • LIST – wyświetla spis wszystkich wiadomości oraz rozmiar każdej z nich
  • TOP numer x – wyświetla „x”linii nagłówka wiadomości o podanym numerze
  • RETR numer – wyświetla treść wiadomości o podanym numerze
  • DELE numer – kasuje e-mail o danym numerze
  • HELP – wyświetla krótką pomoc – spis dostępnych komend
  • RSET – anuluje wszystkie operacje na skrzynce (kasowanie wiadomości)
  • NOOP – nie robi nic. Polecenie używane, aby podtrzymać połączenie, jako że wiele serwerów automatycznie rozłącza sesję po określonym czasie nieaktywności
  • QUIT – kończy sesję i rozłącza się

Po każdej komendzie zwracany jest jej status oraz ewentualny komentarz. Jeżeli polecenie zostało wykonane poprawnie, wyświetlane jest +OK, w razie błędu (złe polecenie, literówka, niewłaściwa liczba parametrów itp.) pojawia się –ERR.

Wysyłanie wiadomości e-mail

W bardzo podobny sposób możesz również przy pomocy telnetu wysyłać pocztę. Oprócz innych komend zasadniczymi różnicami będzie numer portu, który można wykorzystać (jak było wspomniane wcześniej, będzie to tym razem port numer 25), oraz zjawisko autoryzacji poczty.

Autoryzacja poczty jest procedurą dodatkowego potwierdzenia tożsamości nadawcy e-maila. Bez tego praktycznie każdy mógłby wysyłać pocztę w dowolnym imieniu na dowolny adres. Oczywiście w prosty sposób prowadziłoby to do niekontrolowanego zalewu spamem i wirusami.

Będzie to niewielkim utrudnieniem podczas sesji telnetem, ale rzecz jasna nie ma rzeczy niemożliwych. Najpierw jednak musicie zakodować swój login i hasło za pomocą algorytmu Base64. Najprościej posłużyć się gotowym rozwiązaniem: wystarczy do formularza na stronie http://makcoder.sourceforge.net/demo/base64.php wpisać najpierw login, a potem hasło, wcisnąć Encode i skopiować zakodowaną informację. Teraz:

  • Uruchom telnet.
  • Wpisz open smtp.poczta.pl 25.
  • Po zgłoszeniu się serwera należy się z nim „przywitać” komendą HELO.
  • Komputer odpowie na powitanie. Rozpocznij procedurę autoryzacji komendą AUTH LOGIN.
  • Serwer odpowie tajemniczym VXNlcm5hbWU6.

Owa tajemniczość wynika z faktu, że od tego momentu transmisja jest kodowana – jeżeli wpiszesz ten ciąg znaków w formularzu na stronie: http://makcoder.sourceforge.net/demo/base64.php i wciśniesz Decode, okaże się, że to nic innego jak zakodowany ciąg Username:.

  • Wpisz zatem swój login, również zakodowany, np. ciąg znaków „franek” przyjmie postać ZnJhbmVr.
  • Serwer odpowie komunikatem UGFzc3dvcmQ6. Po odkodowaniu oznacza to nic innego jak Password: – wpisz zatem Wasze zakodowane hasło (alamakota przeistoczy się w YWxhbWFrb3Rh).
  • Gdy wszystko zostanie poprawnie wpisane, serwer potwierdzi to komunikatem Authentication successful.
  • Teraz wydajcie polecenie MAIL FROM: <franek@poczta.pl>.
  • Serwer odpowie 250 2.1.0 Sender syntax Ok.
  • Czas na podanie odbiorcy e-maila, określ go za pomocą konstrukcji RCPT TO: <franek@poczta.pl >, po czym serwer odpowie 250 ok.
  • Nadszedł czas na wpisanie treści wiadomości – wpisz polecenie DATA i po odpowiedzi serwera wprowadźcie informację, którą chcesz wysłać.
  • Aby zakończyć wiadomość, wprowadźc w nowej linii znak kropki (.) i wciśnijcie [Enter] . E-mail zostanie natychmiast przekazany do wysłania.
  • Aby zakończyć sesję, wpisz QUIT.

Tak więc przykładowa sesja wygląda następująco:

220 smtp.poczta.pl ESMTP (4) our local time is now Sun, 29 Nov 2005 23:03:40 +0100
HELO dpq29.neoplus.adsl.tpnet.pl
250 smtp.poczta.pl Hello dpq29.neoplus.adsl.tpnet.pl
AUTH LOGIN
334 VXNlcm5hbWU6
ZnJhbmVr
334 UGFzc3dvcmQ6
YWxhbWFrb3Rh
235 Authentication successful.
MAIL FROM: <franek@poczta.pl>
250 2.1.0 Sender syntax Ok
RCPT TO: <franek@poczta.pl>
250 2.1.5 Recipient address syntax Ok; rcpt=<franek@poczta.pl>
DATA
354 Start mail input; end with <CRLF>.<CRLF> Raz, dwa, trzy, testujemy e-maila wysylanego telnetem.
250 2.6.1 Message accepted (ps4.test.pl:22118, internal)
QUIT
221 2.0.0 smtp.poczta.pl Out Connection closed by foreign host.

Podobnie jak podczas odbierania wiadomości, również podczas wysyłania serwer odpowiada komunikatem i statusem wykonania polecenia. W tym jednak przypadku status jest zakodowany do postaci trzycyfrowej liczby. Najważniejsza jest pierwsza cyfra, oznaczająca ogólny stan wykonania komendy. Druga określa kategorię, trzecia zaś precyzuje informację.

Kody komunikatów serwerów SMTP:

  • 2xx – operacja wykonana pomyślnie
  • 3xx – konieczne jest podanie dalszych danych
  • 4xx – operacja wykonana nieprawidłowo, z możliwością kontynuacji
  • 5xx – operacja wykonana niepomyślnie

Przeczytaj również:

  1. Telnet, protokół do zdalnej pracy
  2. Przeglądanie stron WWW za pomocą Telnetu
PODZIEL SIĘ

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ