Jak sprawdzić połączenie SMTP za pomocą ręcznej sesji Telnet

W świecie e-maili istnieje wiele aspektów testowania, ale jednym z najprostszych testów, które możesz przeprowadzić, jest po prostu połączenie się z danym serwerem SMTP za pomocą telnetu. To sprawdzenie SMTP jest przydatne do określenia, czy najprostsze problemy istnieją, czy też nie.

Autor

Ptak

Kategoria

Email

Jak sprawdzić połączenie SMTP za pomocą ręcznej sesji Telnet

W świecie e-maili istnieje wiele aspektów testowania, ale jednym z najprostszych testów, które możesz przeprowadzić, jest po prostu połączenie się z danym serwerem SMTP za pomocą telnetu. To sprawdzenie SMTP jest przydatne do określenia, czy najprostsze problemy istnieją, czy też nie.

Autor

Ptak

Kategoria

Email

Jak sprawdzić połączenie SMTP za pomocą ręcznej sesji Telnet

W świecie e-maili istnieje wiele aspektów testowania, ale jednym z najprostszych testów, które możesz przeprowadzić, jest po prostu połączenie się z danym serwerem SMTP za pomocą telnetu. To sprawdzenie SMTP jest przydatne do określenia, czy najprostsze problemy istnieją, czy też nie.

Autor

Ptak

Kategoria

Email

W świecie e-maili istnieje wiele aspektów testowania, ale jednym z najprostszych testów, które możesz przeprowadzić, jest po prostu połączenie się z danym serwerem SMTP za pomocą telnetu.  Sprawdzenie SMTP jest przydatne do ustalenia, czy niektóre z podstawowych problemów istnieją lub ich brak.

  • Czy serwer działa?

  • Czy zapora blokuje komunikację?

  • Czy serwer pocztowy zezwala na forwardowanie dla konkretnej domeny/adresu e-mail?

  • Jakie polecenia SMTP obsługuje serwer pocztowy?

  • Czy serwer odpowiada prawidłową nazwą hosta?

  • Czy połączenie działa poza oprogramowaniem lub API firm trzecich?


Na te i wiele innych pytań można odpowiedzieć za pomocą prostego testu telnet.

Przed rozpoczęciem upewnij się, że otworzyłeś nasz towarzyszący artykuł do tego wpisu: Dokąd są wysyłane wiadomości o zwrotach? w nowej karcie, abyś mógł go przeczytać po zakończeniu tego bloga.

Jako uwaga, polecenia używane w poniższych przykładach (jak również dodatkowe polecenia) są omówione w sekcji 4.1 RFC 2821.


Jak wysłać e-mail za pomocą telnetu?

Wysyłanie e-maili przez telnet może pomóc zidentyfikować problemy z dostarczalnością w Twojej bieżącej konfiguracji.


Przed wysłaniem e-maila za pomocą telnetu, upewnij się, że telnet jest zainstalowany i włączony na Twoim komputerze. Większość komputerów ma preinstalowany klient telnet. Dla tych wersji Windowsa, które go nie mają, można go zainstalować, otwierając sekcję „Programy i funkcje” w Panelu sterowania i wybierając „Włącz lub wyłącz funkcje systemu Windows”. Gdy to okno jest otwarte, zaznacz „klient telnet” i kliknij OK.

Gdy klient telnetu został zweryfikowany jako zainstalowany na serwerze, otwórz okno terminala, w którym wpiszesz swoje polecenia. Na Windowsie użyj klawiszy Windows + R, wpisz „cmd” i naciśnij enter. Użytkownicy Maca znajdą ikonę terminala, otwierając Finder i szukając „Narzędzi” na stronie Aplikacji lub wpisując „terminal” w funkcji wyszukiwania Launchpada.

Następnie musimy znaleźć serwer pocztowy, na który się zalogujemy. W tym celu potrzebujemy rekordu DNS MX dla danej domeny. Można go znaleźć za pomocą następującego polecenia (w tych przykładach zostanie użyta port25.com, ale można podstawić dowolną domenę):

Windows:

nslookup -type=mx port25.com

Odpowiedź nieautorytatywna:

port25.com  preferencja MX = 100, wymiana poczty = mail.port25.com

Linux:

nslookup -type=mx port25.com

Odpowiedź nieautorytatywna:

port25.com  wymiana poczty = 100 mail.port25.com.


SMTP używa jednego z trzech portów — 25, 465 lub 587, z których Microsoft Outlook zwykle korzysta. Jeśli Twój relay SMTP używa innego portu niż 25, jak pokazano w przykładzie, użyjesz portu określonego w odpowiedzi serwera wymiany mailowej na nslookup. Możesz również zweryfikować port, na którym opiera się Twój SMTP, pytając swojego administratora lub logując się do serwera wymiany poczty i przeglądając protokoły.

Następnie potrzebujemy rekordu DNS PTR dla IP, którego zamierzamy użyć.  Najpierw musimy wiedzieć, jaki adres IP postrzega nas internet.  Aby to ustalić, możemy użyć strony internetowej, takiej jak:

http://whatismyipaddress.com/


Z uzyskanym adresem IP uruchom następujące polecenie, gdzie A.B.C.D to adres IP.

Windows:

nslookup -type=ptr A.B.C.D

Odpowiedź nieautorytatywna: 

D.C.B.A.in-addr.arpa nazwa = server.example.com

Linux:

nslookup -type=ptr A.B.C.D

Odpowiedź nieautorytatywna: 

D.C.B.A.in-addr.arpa nazwa = server.example.com

server.example.com to tylko przykład, a Twoje wyniki będą inne.

Teraz, gdy mamy rekord MX dla port25.com i PTR dla IP, którego zamierzamy użyć, czas zalogować się na serwer SMTP.  W tym celu użyj następującego polecenia:

telnet mail.port25.com 25

Czegoś podobnego do poniższego powinno być teraz wyświetlone:

Próba 69.63.149.30... Połączono z mail.port25.com (69.63.149.30). Znak ucieczki to '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) usługa ESMTP gotowa

Jeśli w tym momencie otrzymasz komunikat o błędzie „nie można się połączyć”, to bądź numer portu jest prawidłowy, albo serwer pocztowy ma problemy.

Pierwsze polecenie, które musimy wydać do serwera pocztowego dla naszego testera e-mailowego SMTP, to EHLO  lub HELO.  To podstawowe powitanie rozpoczyna komunikację między klientem telnet a serwerem SMTP.  Także przekazywany jest DNS PTR dla adresu IP, z którego się łączymy, co ustalono wcześniej.

EHLO server.example.com

Coś podobnego do poniższego powinno zostać zwrócone:

250-mail.port25.com mówi cześć 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN

To pokazuje polecenia SMTP, które akceptuje serwer SMTP.  Nie wszystkie serwery SMTP obsługują te same zestawy poleceń. Na przykład, yahoo pokazuje tylko następujące:

250-8BITMIME 250-SIZE 41943040 250 PIPELINING

A aol pokazuje tylko jedno z:

250 DSN

Następnym poleceniem, które musimy wydawać, jest polecenie MAIL FROM.  Określa ono adres, na który będą wysyłane wiadomości zwrotne. To nie jest to samo, co nagłówek nadawcy, który jest adresem e-mail widocznym w kliencie pocztowym.

MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok


Upewnij się, że używasz nazwy domeny odpowiadającej domenie Twojego serwera pocztowego. Na przykład, jeśli domena Twojego e-maila to anycompany.com, powinieneś użyć you@anycompany.com, zamiast zewnętrznego e-maila, jak you@free-mail-provider.com. Różnice w nazwach domen mogą powodować pojawienie się komunikatu o błędzie.


Teraz, gdy polecenie MAIL FROM  zostało wysłane, możemy wysłać polecenie RCPT TO  . To polecenie mówi serwerowi pocztowemu SMTP, do kogo wiadomość powinna być wysłana. To może być to samo lub różne od nagłówka do, który jest adresem e-mail widocznym w kliencie e-mailowym.


RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok

Sprawdź jeszcze raz adres odbiorcy przed wysłaniem polecenia RCPT TO — komunikat o błędzie wyświetlający się tutaj może wskazywać na błędnie napisany lub zablokowany adres e-mail odbiorcy.

Ostatnie polecenie do uruchomienia przed rozpoczęciem treści wiadomości to polecenie DATA  . To polecenie informuje serwer pocztowy SMTP, że wszystko, co zostanie wysłane następnie, jest treścią wiadomości (która zawiera również nagłówki).


DATA 354 wyślij wiadomość

Ważne jest, aby zauważyć, że jeśli serwer pocztowy wspiera PIPELINING, jak mail.port25.com, serwer pocztowy SMTP może czekać, aż polecenie DATA zostanie wydane, zanim odpowie na jakiekolwiek inne polecenia po EHLO/HELO.  W takim przypadku wprowadź polecenia MAIL FROM, RCPT TO i DATA  przed oczekiwaniem na odpowiedź.


Teraz, gdy polecenie DATA  zostało wysłane, możemy rozpocząć wysyłanie treści wiadomości.  Zaczyna się to od różnych nagłówków. W minimum wiadomość powinna zawierać nagłówki do, od, temat i datę. Nagłówki wprowadzone tutaj będą wyświetlane użytkownikowi w jego kliencie e-mailowym.


Od: "John Smith" <jsmith@port25.com> Do: "Jane Doe" <jdoe@port25.com> Temat: testowa wiadomość wysłana z manualnej sesji telnetu Data: Śr, 11 maja 2011 16:19:57 -0400

Gdy nagłówki są ustawione, dodajemy jedną pustą linię z powrotem/spadkiem linii (po prostu naciśnij enter dwa razy), a następnie rozpoczynamy właściwą treść wiadomości.

Cześć świecie, To jest testowa wiadomość wysłana z manualnej sesji telnetu. Z poważaniem, administrator SMTP

Gdy wiadomość jest gotowa, musimy poinformować serwer SMTP, że skończyliśmy z wiadomością i chcemy, aby serwer pocztowy SMTP ją zaakceptował.  Robimy to poprzez umieszczenie kropki w osobnej linii. Jeśli podczas pisania wiadomości konieczna jest kropka na osobnej linii, musisz umieścić 2 kropki, z których pierwsza ucieka drugą.


.   250 2.6.0 wiadomość otrzymana

Jeśli otrzymasz komunikat o błędzie zamiast powiadomienia „otrzymana”, zanotuj szczegóły i skontaktuj się ze swoim dostawcą e-mail w celu uzyskania dalszej pomocy.

Na koniec wysyłane jest polecenie QUIT  aby zamknąć połączenie:

QUIT 221 2.0.0 mail.port25.com mówi do widzenia

W ten sposób serwer pocztowy zaakceptował teraz wiadomość do dostarczenia, test e-mailowy telnetu jest zakończony, a ona powinna znajdować się w skrzynce odbiorczej adresu RCPT TO!!!

Oto wszystkie polecenia bez przerwy:

telnet mail.port25.com 25 Próba 69.63.149.30... Połączono z mail.port25.com (69.63.149.30). Znak ucieczki to '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) usługa ESMTP gotowa EHLO server.example.com 250-mail.port25.com mówi cześć 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok DATA 354 wyślij wiadomość Od: "John Smith" <jsmith@port25.com> Do: "Jane Doe" <jdoe@port25.com> Temat: testowa wiadomość wysłana z manualnej sesji telnetu Data: Śr, 11 maja 2011 16:19:57 -0400 Cześć świecie, To jest testowa wiadomość wysłana z manualnej sesji telnetu. Z poważaniem, administrator SMTP . 250 2.6.0 wiadomość otrzymana QUIT 221 2.0.0 mail.port25.com mówi do widzenia


Wysłanie e-maila za pomocą telnetu pozwala na szybkie przetestowanie możliwości połączeniowych i jest tańsze niż solidny sprzęt diagnostyczny lub oprogramowanie.


Jak przetestować SMTP za pomocą uwierzytelniania telnetu?

Teraz, gdy wiesz, jak sprawdzić połączenie SMTP za pomocą telnetu, omówimy procedury uwierzytelniania. Uwierzytelnianie SMTP pomaga zapobiegać przedostawaniu się dużej ilości spamu do skrzynek odbiorczych czytelników, chociaż nie wszystkie serwery wymiany pocztowej tego wymagają.


Podstawową różnicą w nowoczesnych protokołach uwierzytelniania jest obecność kodowania base64. Base64 konwertuje dane binarne na format ASCII, który jest wymagany przez serwery pocztowe do udanego przesyłania danych. Jest to sposób reprezentowania swoich danych logowania — pewnej kombinacji tekstów — w formacie numerycznym, który komputer może zrozumieć.

Możesz wygenerować swoje base64 za pomocą oprogramowania lub darmowych narzędzi online. Gdy przekażesz te informacje serwerowi pocztowemu, porówna te dane ze swoimi rekordami, aby określić uwierzytelnienie.


Aby przetestować uwierzytelnianie SMTP przez telnet, wykonaj następujące kroki:

  • Otwórz terminal i połącz się z serwerem pocztowym, używając polecenia nazwy serwera telnet oraz polecenia dostępu — mail.port25.com w powyższym przykładzie.

  • Przywitaj serwer poleceniem EHLO lub HELO, wprowadź AUTH LOGIN i poczekaj na odpowiedź komputera.

  • Wprowadź nazwę użytkownika zakodowaną w base64 i pozwól serwerowi odpowiedzieć.

  • Wprowadź hasło zakodowane w base64, a powinieneś otrzymać odpowiedź, taką jak „uwierzytelnienie powiodło się”.

  • Postępuj zgodnie z MAIL FROM, RCPT TO, DATA i QUIT, aby wysłać swój uwierzytelniony e-mail.

Sign up

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Sign up

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Sign up

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Channels

Grow

Engage

Automate

APIs

Resources

Company

Socials

Rośnij

Zarządzaj

Automatyzować

Rośnij

Zarządzaj

Automatyzować