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

Ptak

7 lut 2020

Email

1 min read

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

Najważniejsze informacje

    • Ręczne testowanie telnetu to szybki, niskotechniczny sposób diagnozowania problemów z łącznością i konfiguracją SMTP.

    • Użyj go, aby sprawdzić, czy serwer SMTP jest dostępny, poprawnie skonfigurowany i akceptujący połączenia.

    • Test może ujawnić zablokowane porty, ograniczenia relay, błędy DNS lub problemy z kompatybilnością TLS.

    • Podstawowe polecenia SMTP obejmują EHLO/HELO, MAIL FROM, RCPT TO, DATA i QUIT.

    • Port 25 jest standardowy dla relay, podczas gdy 465 i 587 są używane do bezpiecznego przesyłania.

    • Uwierzytelnianie zakodowane w Base64 (AUTH LOGIN) jest wymagane, gdy serwery żądają danych logowania.

    • Narzędzia takie jak Swaks lub zintegrowane platformy testowania e-maila mogą zautomatyzować i rozszerzyć kroki diagnostyczne telnetu.

Podsumowanie pytań i odpowiedzi

  • Dlaczego używać telnetu zamiast dedykowanego narzędzia do testowania poczty elektronicznej?

    Telnet daje bezpośrednią widoczność w surowy dialog SMTP. Jest nieocenione do rozwiązywania problemów na poziomie protokołu i potwierdzania odpowiedzi serwera bez warstw zewnętrznych.

  • Jaki jest najszybszy sposób, aby sprawdzić, czy mój port SMTP jest zablokowany?

    Uruchom telnet mail.example.com 25. Jeśli otrzymasz „Połączenie odrzucone”, twój dostawca usług internetowych lub host prawdopodobnie blokuje port.

  • Czy muszę się uwierzytelnić podczas testowania za pomocą telnetu?

    Tylko jeśli serwer pocztowy wymaga uwierzytelnienia. Użyj polecenia AUTH LOGIN i wyślij swoją nazwę użytkownika oraz hasło zakodowane w Base64.

  • Czy mogę wysłać pełnego e-maila przez telnet?

    Tak. Po DATA, dodaj swoje nagłówki i treść, zakończ jedną kropką (.) na osobnej linii, a następnie wpisz QUIT.

  • Czy telnet jest bezpieczny do testowania SMTP?

    Nie. Telnet przesyła dane wprost. Używaj go tylko do testowania w bezpiecznych, kontrolowanych środowiskach. Do bezpiecznych połączeń przeprowadzaj testy za pomocą TLS, korzystając z narzędzi, które obsługują STARTTLS.

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

W świecie e-maili jest wiele aspektów testowania, ale jednym z najbardziej podstawowych testów, które możesz wykonać, jest po prostu nawiązanie połączenia telnet z danym serwerem SMTP.  Ten test SMTP jest użyteczny w określeniu, czy najprostsze problemy istnieją, czy nie.

  • Czy serwer działa?

  • Czy istnieje zapora blokująca komunikację?

  • Czy serwer pocztowy zezwala na przesyłanie poczty dla określonej domeny/adresu e-mail?

  • Jakie polecenia SMTP obsługuje serwer pocztowy?

  • Czy serwer odpowiada poprawną nazwą hosta?

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

Na te i inne pytania można odpowiedzieć za pomocą prostego testu telnet.

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

Uwaga, polecenia używane w poniższych przykładach (a także dodatkowe polecenia) są omówione w sekcji 4.1 RFC 2821.

W świecie e-maili jest wiele aspektów testowania, ale jednym z najbardziej podstawowych testów, które możesz wykonać, jest po prostu nawiązanie połączenia telnet z danym serwerem SMTP.  Ten test SMTP jest użyteczny w określeniu, czy najprostsze problemy istnieją, czy nie.

  • Czy serwer działa?

  • Czy istnieje zapora blokująca komunikację?

  • Czy serwer pocztowy zezwala na przesyłanie poczty dla określonej domeny/adresu e-mail?

  • Jakie polecenia SMTP obsługuje serwer pocztowy?

  • Czy serwer odpowiada poprawną nazwą hosta?

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

Na te i inne pytania można odpowiedzieć za pomocą prostego testu telnet.

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

Uwaga, polecenia używane w poniższych przykładach (a także dodatkowe polecenia) są omówione w sekcji 4.1 RFC 2821.

W świecie e-maili jest wiele aspektów testowania, ale jednym z najbardziej podstawowych testów, które możesz wykonać, jest po prostu nawiązanie połączenia telnet z danym serwerem SMTP.  Ten test SMTP jest użyteczny w określeniu, czy najprostsze problemy istnieją, czy nie.

  • Czy serwer działa?

  • Czy istnieje zapora blokująca komunikację?

  • Czy serwer pocztowy zezwala na przesyłanie poczty dla określonej domeny/adresu e-mail?

  • Jakie polecenia SMTP obsługuje serwer pocztowy?

  • Czy serwer odpowiada poprawną nazwą hosta?

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

Na te i inne pytania można odpowiedzieć za pomocą prostego testu telnet.

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

Uwaga, polecenia używane w poniższych przykładach (a także dodatkowe polecenia) są omówione w sekcji 4.1 RFC 2821.

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

Wysyłanie e-maili za pomocą telnetu może pomóc w identyfikacji problemów 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 zainstalowanego klienta telnetu. W przypadku tych wersji Windows, 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 okno jest otwarte, wybierz „klient telnet” i kliknij OK.

Po potwierdzeniu, że klient telnet został zainstalowany na serwerze, otwórz okno terminala, w którym wprowadzisz polecenia. W systemie Windows użyj klawiszy Windows + R, wpisz „cmd” i naciśnij enter. Dla użytkowników Maca ikonę terminala znajdziesz, otwierając Finder i szukając „Narzędzi” na stronie Aplikacje lub wpisując „terminal” w funkcji wyszukiwania Launchpada.

Następnie musimy znaleźć serwer pocztowy, aby się zalogować. W tym celu potrzebujemy rekordu DNS MX dla danego domeny. Można to znaleźć za pomocą następującego polecenia (w tych przykładach użyta będzie port25.com, ale można wstawić dowolną domenę):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

Szybki przewodnik po portach SMTP

Oto szybki przewodnik po typowych portach do wysyłania SMTP i kiedy ich używać:

Port

Szyfrowanie

Typowy przypadek użycia

Uwagi

25

Brak / Opcjonalne TLS

Relay serwer-serwer

Często blokowane przez dostawców Internetu w celu kontrolowania spamu

465

Implikowane SSL/TLS

Dziedziczna bezpieczna wysyłka

Przestarzałe, ale nadal używane przez starsze systemy

587

STARTTLS

Nowoczesna uwierzytelniona wysyłka

Rekomendowane do wysyłania e-maili przez klientów

W przypadku zaawansowanej konfiguracji serwera pocztowego i optymalizacji zapoznaj się z naszym przewodnikiem na temat wskazówek dotyczących konfiguracji PowerMTA. Jeśli Twój relay SMTP używa innego portu niż 25, jak pokazano w przykładzie, użyjesz portu określonego przez odpowiedź serwera wymiany poczty na zapytanie nslookup. Możesz również potwierdzić port, na którym polegasz na SMTP, pytając swojego administratora lub logując się do serwera wymiany pocztowej i przeglądając protokoły.

Następnie potrzebujemy rekordu DNS PTR dla używanego adresu IP.  Najpierw musimy dowiedzieć się, jaki adres IP internet widzi jako nasz.  Aby to znaleźć, możemy skorzystać z takiej strony jak:

http://whatismyipaddress.com/

Używając adresu IP, uruchom następujące polecenie, gdzie A.B.C.D to adres IP.

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

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

Tak więc, teraz, gdy mamy rekord MX dla port25.com oraz PTR dla używanego IP, nadszedł czas na zalogowanie się do serwera SMTP. Aby to zrobić, użyj następującego polecenia:

telnet mail.port25.com 25

Coś podobnego do poniższego powinno zostać teraz wyświetlone:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

Jeśli w tym momencie otrzymasz komunikat o błędzie, taki jak „nie można się połączyć”, zarówno numer portu, jak i serwer pocztowy mogą mieć problemy.

Pierwsze polecenie, które musimy wydawać serwerowi pocztowemu dla naszego testera e-mailowego SMTP, to EHLO  lub HELO.  To podstawowe przywitanie rozpoczyna komunikację między klientem telnet a serwerem SMTP.  Przesyłany jest również DNS PTR dla adresu IP, z którego się łączymy, jak ustalono wcześniej.

EHLO server.example.com

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

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

To pokazuje komendy SMTP, które akceptuje serwer SMTP.  Nie wszystkie serwery SMTP obsługują te same zestawy komend. Na przykład yahoo pokazuje tylko:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

AOL pokazuje tylko jedno:

250 DSN

Następnym poleceniem, które musimy wydać, jest polecenie MAIL FROM.  Określa to adres, na który są wysyłane nieodebrane wiadomości. To nie jest to samo, co nagłówek „from”, który jest adresem e-mailowym widocznym w kliencie e-mail.

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 adres e-mail Twojej domeny to anycompany.com, użyj adresu you@anycompany.com zamiast zewnętrznego adresu, takiego jak you@free-mail-provider.com. Różnice w nazwach domen mogą spowodować pojawienie się komunikatu o błędzie.

Teraz, gdy komenda MAIL FROM  została wysłana, możemy wysłać komendę RCPT TO  . Ta komenda informuje serwer pocztowy SMTP, do kogo wiadomość ma zostać wysłana. Może to być to samo lub inne niż nagłówek „to”, który jest adresem e-mailowym widocznym w kliencie e-mail.

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

Sprawdź adres odbiorcy przed wysłaniem polecenia RCPT TO — komunikat o błędzie wyświetlany tutaj może oznaczać źle napisany adres e-mailowy lub zablokowanego odbiorcę.

Ostatnie polecenie przed rozpoczęciem treści wiadomości to polecenie DATA  . Ta komenda informuje serwer pocztowy SMTP, że wszystko, co będzie wysłane, jest treścią wiadomości (która również zawiera nagłówki).

DATA 354 wyślij wiadomość

Ważne jest, aby zauważyć, że jeśli serwer pocztowy obsługuje PIPELINING, jak to robi mail.port25.com, serwer pocztowy SMTP może poczekać na wydanie polecenia DATA przed odpowiedzią na jakiekolwiek inne polecenia po EHLO/HELO.  W takim przypadku wprowadź polecenia MAIL FROM, RCPT TO i DATA  przed oczekiwaniem na odpowiedź.

Teraz, gdy komenda DATA  została wysłana, możemy zacząć przesyłać treść wiadomości.  Zaczynamy od różnych nagłówków. Co najmniej wiadomość powinna zawierać nagłówki „to”, „from”, „subject” i „data”. Wprowadzone nagłówki będą pokazywane użytkownikowi w jego kliencie e-mail.

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

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

Witaj świecie, to jest testowa wiadomość wysłana z ręcznej sesji telnet. Z poważaniem, administrator SMTP

Gdy wiadomość jest gotowa, musimy poinformować serwer SMTP, że zakończyliśmy wiadomość i chcemy, aby serwer pocztowy SMTP ją zaakceptował. Robi się to przez umieszczenie kropki w linii samodzielnie. Jeśli podczas pisania wiadomości potrzebna jest kropka w linii samodzielnie, musisz umieścić 2 kropki, z których pierwsza ucieka drugą.

.   250 2.6.0 wiadomość odebrana

Jeśli zamiast powiadomienia „odebrano” otrzymasz komunikat o błędzie, zarejestruj odpowiednie szczegóły i skontaktuj się z dostawcą poczty e-mail w celu uzyskania dalszej pomocy. Problemy z połączeniem mogą być również związane z protokołami zabezpieczeń - upewnij się, że używasz TLS 1.2 lub wyższego do bezpiecznych połączeń.

Na końcu przesyłane jest polecenie QUIT  w celu zamknięcia połączenia:

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

To oznacza, że serwer pocztowy zaakceptował wiadomość do dostarczenia, Twój test wysyłania e-maili telnetem jest zakończony, i powinna ona znajdować się w skrzynce odbiorczej adresu RCPT TO!!!

Oto wszystkie polecenia bez przerwy:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
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 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

Wysyłanie e-maili za pomocą telnetu pozwala szybko testować możliwości połączenia i przy mniejszych kosztach niż solidny sprzęt diagnostyczny lub oprogramowanie. W przypadku bardziej zaawansowanych narzędzi do testowania SMTP rozważ użycie Swaks z SparkPost do kompleksowego testowania e-maili.

Wysyłanie e-maili za pomocą telnetu może pomóc w identyfikacji problemów 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 zainstalowanego klienta telnetu. W przypadku tych wersji Windows, 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 okno jest otwarte, wybierz „klient telnet” i kliknij OK.

Po potwierdzeniu, że klient telnet został zainstalowany na serwerze, otwórz okno terminala, w którym wprowadzisz polecenia. W systemie Windows użyj klawiszy Windows + R, wpisz „cmd” i naciśnij enter. Dla użytkowników Maca ikonę terminala znajdziesz, otwierając Finder i szukając „Narzędzi” na stronie Aplikacje lub wpisując „terminal” w funkcji wyszukiwania Launchpada.

Następnie musimy znaleźć serwer pocztowy, aby się zalogować. W tym celu potrzebujemy rekordu DNS MX dla danego domeny. Można to znaleźć za pomocą następującego polecenia (w tych przykładach użyta będzie port25.com, ale można wstawić dowolną domenę):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

Szybki przewodnik po portach SMTP

Oto szybki przewodnik po typowych portach do wysyłania SMTP i kiedy ich używać:

Port

Szyfrowanie

Typowy przypadek użycia

Uwagi

25

Brak / Opcjonalne TLS

Relay serwer-serwer

Często blokowane przez dostawców Internetu w celu kontrolowania spamu

465

Implikowane SSL/TLS

Dziedziczna bezpieczna wysyłka

Przestarzałe, ale nadal używane przez starsze systemy

587

STARTTLS

Nowoczesna uwierzytelniona wysyłka

Rekomendowane do wysyłania e-maili przez klientów

W przypadku zaawansowanej konfiguracji serwera pocztowego i optymalizacji zapoznaj się z naszym przewodnikiem na temat wskazówek dotyczących konfiguracji PowerMTA. Jeśli Twój relay SMTP używa innego portu niż 25, jak pokazano w przykładzie, użyjesz portu określonego przez odpowiedź serwera wymiany poczty na zapytanie nslookup. Możesz również potwierdzić port, na którym polegasz na SMTP, pytając swojego administratora lub logując się do serwera wymiany pocztowej i przeglądając protokoły.

Następnie potrzebujemy rekordu DNS PTR dla używanego adresu IP.  Najpierw musimy dowiedzieć się, jaki adres IP internet widzi jako nasz.  Aby to znaleźć, możemy skorzystać z takiej strony jak:

http://whatismyipaddress.com/

Używając adresu IP, uruchom następujące polecenie, gdzie A.B.C.D to adres IP.

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

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

Tak więc, teraz, gdy mamy rekord MX dla port25.com oraz PTR dla używanego IP, nadszedł czas na zalogowanie się do serwera SMTP. Aby to zrobić, użyj następującego polecenia:

telnet mail.port25.com 25

Coś podobnego do poniższego powinno zostać teraz wyświetlone:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

Jeśli w tym momencie otrzymasz komunikat o błędzie, taki jak „nie można się połączyć”, zarówno numer portu, jak i serwer pocztowy mogą mieć problemy.

Pierwsze polecenie, które musimy wydawać serwerowi pocztowemu dla naszego testera e-mailowego SMTP, to EHLO  lub HELO.  To podstawowe przywitanie rozpoczyna komunikację między klientem telnet a serwerem SMTP.  Przesyłany jest również DNS PTR dla adresu IP, z którego się łączymy, jak ustalono wcześniej.

EHLO server.example.com

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

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

To pokazuje komendy SMTP, które akceptuje serwer SMTP.  Nie wszystkie serwery SMTP obsługują te same zestawy komend. Na przykład yahoo pokazuje tylko:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

AOL pokazuje tylko jedno:

250 DSN

Następnym poleceniem, które musimy wydać, jest polecenie MAIL FROM.  Określa to adres, na który są wysyłane nieodebrane wiadomości. To nie jest to samo, co nagłówek „from”, który jest adresem e-mailowym widocznym w kliencie e-mail.

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 adres e-mail Twojej domeny to anycompany.com, użyj adresu you@anycompany.com zamiast zewnętrznego adresu, takiego jak you@free-mail-provider.com. Różnice w nazwach domen mogą spowodować pojawienie się komunikatu o błędzie.

Teraz, gdy komenda MAIL FROM  została wysłana, możemy wysłać komendę RCPT TO  . Ta komenda informuje serwer pocztowy SMTP, do kogo wiadomość ma zostać wysłana. Może to być to samo lub inne niż nagłówek „to”, który jest adresem e-mailowym widocznym w kliencie e-mail.

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

Sprawdź adres odbiorcy przed wysłaniem polecenia RCPT TO — komunikat o błędzie wyświetlany tutaj może oznaczać źle napisany adres e-mailowy lub zablokowanego odbiorcę.

Ostatnie polecenie przed rozpoczęciem treści wiadomości to polecenie DATA  . Ta komenda informuje serwer pocztowy SMTP, że wszystko, co będzie wysłane, jest treścią wiadomości (która również zawiera nagłówki).

DATA 354 wyślij wiadomość

Ważne jest, aby zauważyć, że jeśli serwer pocztowy obsługuje PIPELINING, jak to robi mail.port25.com, serwer pocztowy SMTP może poczekać na wydanie polecenia DATA przed odpowiedzią na jakiekolwiek inne polecenia po EHLO/HELO.  W takim przypadku wprowadź polecenia MAIL FROM, RCPT TO i DATA  przed oczekiwaniem na odpowiedź.

Teraz, gdy komenda DATA  została wysłana, możemy zacząć przesyłać treść wiadomości.  Zaczynamy od różnych nagłówków. Co najmniej wiadomość powinna zawierać nagłówki „to”, „from”, „subject” i „data”. Wprowadzone nagłówki będą pokazywane użytkownikowi w jego kliencie e-mail.

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

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

Witaj świecie, to jest testowa wiadomość wysłana z ręcznej sesji telnet. Z poważaniem, administrator SMTP

Gdy wiadomość jest gotowa, musimy poinformować serwer SMTP, że zakończyliśmy wiadomość i chcemy, aby serwer pocztowy SMTP ją zaakceptował. Robi się to przez umieszczenie kropki w linii samodzielnie. Jeśli podczas pisania wiadomości potrzebna jest kropka w linii samodzielnie, musisz umieścić 2 kropki, z których pierwsza ucieka drugą.

.   250 2.6.0 wiadomość odebrana

Jeśli zamiast powiadomienia „odebrano” otrzymasz komunikat o błędzie, zarejestruj odpowiednie szczegóły i skontaktuj się z dostawcą poczty e-mail w celu uzyskania dalszej pomocy. Problemy z połączeniem mogą być również związane z protokołami zabezpieczeń - upewnij się, że używasz TLS 1.2 lub wyższego do bezpiecznych połączeń.

Na końcu przesyłane jest polecenie QUIT  w celu zamknięcia połączenia:

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

To oznacza, że serwer pocztowy zaakceptował wiadomość do dostarczenia, Twój test wysyłania e-maili telnetem jest zakończony, i powinna ona znajdować się w skrzynce odbiorczej adresu RCPT TO!!!

Oto wszystkie polecenia bez przerwy:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
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 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

Wysyłanie e-maili za pomocą telnetu pozwala szybko testować możliwości połączenia i przy mniejszych kosztach niż solidny sprzęt diagnostyczny lub oprogramowanie. W przypadku bardziej zaawansowanych narzędzi do testowania SMTP rozważ użycie Swaks z SparkPost do kompleksowego testowania e-maili.

Wysyłanie e-maili za pomocą telnetu może pomóc w identyfikacji problemów 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 zainstalowanego klienta telnetu. W przypadku tych wersji Windows, 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 okno jest otwarte, wybierz „klient telnet” i kliknij OK.

Po potwierdzeniu, że klient telnet został zainstalowany na serwerze, otwórz okno terminala, w którym wprowadzisz polecenia. W systemie Windows użyj klawiszy Windows + R, wpisz „cmd” i naciśnij enter. Dla użytkowników Maca ikonę terminala znajdziesz, otwierając Finder i szukając „Narzędzi” na stronie Aplikacje lub wpisując „terminal” w funkcji wyszukiwania Launchpada.

Następnie musimy znaleźć serwer pocztowy, aby się zalogować. W tym celu potrzebujemy rekordu DNS MX dla danego domeny. Można to znaleźć za pomocą następującego polecenia (w tych przykładach użyta będzie port25.com, ale można wstawić dowolną domenę):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

Szybki przewodnik po portach SMTP

Oto szybki przewodnik po typowych portach do wysyłania SMTP i kiedy ich używać:

Port

Szyfrowanie

Typowy przypadek użycia

Uwagi

25

Brak / Opcjonalne TLS

Relay serwer-serwer

Często blokowane przez dostawców Internetu w celu kontrolowania spamu

465

Implikowane SSL/TLS

Dziedziczna bezpieczna wysyłka

Przestarzałe, ale nadal używane przez starsze systemy

587

STARTTLS

Nowoczesna uwierzytelniona wysyłka

Rekomendowane do wysyłania e-maili przez klientów

W przypadku zaawansowanej konfiguracji serwera pocztowego i optymalizacji zapoznaj się z naszym przewodnikiem na temat wskazówek dotyczących konfiguracji PowerMTA. Jeśli Twój relay SMTP używa innego portu niż 25, jak pokazano w przykładzie, użyjesz portu określonego przez odpowiedź serwera wymiany poczty na zapytanie nslookup. Możesz również potwierdzić port, na którym polegasz na SMTP, pytając swojego administratora lub logując się do serwera wymiany pocztowej i przeglądając protokoły.

Następnie potrzebujemy rekordu DNS PTR dla używanego adresu IP.  Najpierw musimy dowiedzieć się, jaki adres IP internet widzi jako nasz.  Aby to znaleźć, możemy skorzystać z takiej strony jak:

http://whatismyipaddress.com/

Używając adresu IP, uruchom następujące polecenie, gdzie A.B.C.D to adres IP.

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

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

Tak więc, teraz, gdy mamy rekord MX dla port25.com oraz PTR dla używanego IP, nadszedł czas na zalogowanie się do serwera SMTP. Aby to zrobić, użyj następującego polecenia:

telnet mail.port25.com 25

Coś podobnego do poniższego powinno zostać teraz wyświetlone:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

Jeśli w tym momencie otrzymasz komunikat o błędzie, taki jak „nie można się połączyć”, zarówno numer portu, jak i serwer pocztowy mogą mieć problemy.

Pierwsze polecenie, które musimy wydawać serwerowi pocztowemu dla naszego testera e-mailowego SMTP, to EHLO  lub HELO.  To podstawowe przywitanie rozpoczyna komunikację między klientem telnet a serwerem SMTP.  Przesyłany jest również DNS PTR dla adresu IP, z którego się łączymy, jak ustalono wcześniej.

EHLO server.example.com

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

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

To pokazuje komendy SMTP, które akceptuje serwer SMTP.  Nie wszystkie serwery SMTP obsługują te same zestawy komend. Na przykład yahoo pokazuje tylko:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

AOL pokazuje tylko jedno:

250 DSN

Następnym poleceniem, które musimy wydać, jest polecenie MAIL FROM.  Określa to adres, na który są wysyłane nieodebrane wiadomości. To nie jest to samo, co nagłówek „from”, który jest adresem e-mailowym widocznym w kliencie e-mail.

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 adres e-mail Twojej domeny to anycompany.com, użyj adresu you@anycompany.com zamiast zewnętrznego adresu, takiego jak you@free-mail-provider.com. Różnice w nazwach domen mogą spowodować pojawienie się komunikatu o błędzie.

Teraz, gdy komenda MAIL FROM  została wysłana, możemy wysłać komendę RCPT TO  . Ta komenda informuje serwer pocztowy SMTP, do kogo wiadomość ma zostać wysłana. Może to być to samo lub inne niż nagłówek „to”, który jest adresem e-mailowym widocznym w kliencie e-mail.

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

Sprawdź adres odbiorcy przed wysłaniem polecenia RCPT TO — komunikat o błędzie wyświetlany tutaj może oznaczać źle napisany adres e-mailowy lub zablokowanego odbiorcę.

Ostatnie polecenie przed rozpoczęciem treści wiadomości to polecenie DATA  . Ta komenda informuje serwer pocztowy SMTP, że wszystko, co będzie wysłane, jest treścią wiadomości (która również zawiera nagłówki).

DATA 354 wyślij wiadomość

Ważne jest, aby zauważyć, że jeśli serwer pocztowy obsługuje PIPELINING, jak to robi mail.port25.com, serwer pocztowy SMTP może poczekać na wydanie polecenia DATA przed odpowiedzią na jakiekolwiek inne polecenia po EHLO/HELO.  W takim przypadku wprowadź polecenia MAIL FROM, RCPT TO i DATA  przed oczekiwaniem na odpowiedź.

Teraz, gdy komenda DATA  została wysłana, możemy zacząć przesyłać treść wiadomości.  Zaczynamy od różnych nagłówków. Co najmniej wiadomość powinna zawierać nagłówki „to”, „from”, „subject” i „data”. Wprowadzone nagłówki będą pokazywane użytkownikowi w jego kliencie e-mail.

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

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

Witaj świecie, to jest testowa wiadomość wysłana z ręcznej sesji telnet. Z poważaniem, administrator SMTP

Gdy wiadomość jest gotowa, musimy poinformować serwer SMTP, że zakończyliśmy wiadomość i chcemy, aby serwer pocztowy SMTP ją zaakceptował. Robi się to przez umieszczenie kropki w linii samodzielnie. Jeśli podczas pisania wiadomości potrzebna jest kropka w linii samodzielnie, musisz umieścić 2 kropki, z których pierwsza ucieka drugą.

.   250 2.6.0 wiadomość odebrana

Jeśli zamiast powiadomienia „odebrano” otrzymasz komunikat o błędzie, zarejestruj odpowiednie szczegóły i skontaktuj się z dostawcą poczty e-mail w celu uzyskania dalszej pomocy. Problemy z połączeniem mogą być również związane z protokołami zabezpieczeń - upewnij się, że używasz TLS 1.2 lub wyższego do bezpiecznych połączeń.

Na końcu przesyłane jest polecenie QUIT  w celu zamknięcia połączenia:

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

To oznacza, że serwer pocztowy zaakceptował wiadomość do dostarczenia, Twój test wysyłania e-maili telnetem jest zakończony, i powinna ona znajdować się w skrzynce odbiorczej adresu RCPT TO!!!

Oto wszystkie polecenia bez przerwy:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
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 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

Wysyłanie e-maili za pomocą telnetu pozwala szybko testować możliwości połączenia i przy mniejszych kosztach niż solidny sprzęt diagnostyczny lub oprogramowanie. W przypadku bardziej zaawansowanych narzędzi do testowania SMTP rozważ użycie Swaks z SparkPost do kompleksowego testowania e-maili.

Jak testować SMTP za pomocą uwierzytelniania Telnet?

Teraz, gdy wiesz, jak sprawdzić połączenie SMTP za pomocą telnetu, omówimy procedury uwierzytelniania. Uwierzytelnianie SMTP pomaga zapobiegać dużej ilości spamu docierającemu do skrzynek odbiorczych czytelników, chociaż nie wszystkie serwery wymiany poczty tego wymagają. Zrozumienie uwierzytelniania jest również kluczowe podczas analizowania nagłówków e-maili w celu rozwiązywania problemów z dostarczalnością.

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

Możesz wygenerować swoje base64 za pomocą oprogramowania lub bezpłatnych narzędzi online. Gdy przekażesz informacje do serwera pocztowego, porównuje on te dane z własnymi zapisami, aby określić uwierzytelnienie.

Aby przetestować uwierzytelnianie SMTP za pomocą telnetu, wykonaj następujące kroki:

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

  • Powitaj serwer za pomocą EHLO lub HELO, wprowadź AUTH LOGIN i czekaj na odpowiedź komputera.

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

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

  • Kontynuuj poleceniami MAIL FROM, RCPT TO, DATA i QUIT, aby wysłać swój uwierzytelniony e-mail.

Teraz, gdy wiesz, jak sprawdzić połączenie SMTP za pomocą telnetu, omówimy procedury uwierzytelniania. Uwierzytelnianie SMTP pomaga zapobiegać dużej ilości spamu docierającemu do skrzynek odbiorczych czytelników, chociaż nie wszystkie serwery wymiany poczty tego wymagają. Zrozumienie uwierzytelniania jest również kluczowe podczas analizowania nagłówków e-maili w celu rozwiązywania problemów z dostarczalnością.

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

Możesz wygenerować swoje base64 za pomocą oprogramowania lub bezpłatnych narzędzi online. Gdy przekażesz informacje do serwera pocztowego, porównuje on te dane z własnymi zapisami, aby określić uwierzytelnienie.

Aby przetestować uwierzytelnianie SMTP za pomocą telnetu, wykonaj następujące kroki:

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

  • Powitaj serwer za pomocą EHLO lub HELO, wprowadź AUTH LOGIN i czekaj na odpowiedź komputera.

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

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

  • Kontynuuj poleceniami MAIL FROM, RCPT TO, DATA i QUIT, aby wysłać swój uwierzytelniony e-mail.

Teraz, gdy wiesz, jak sprawdzić połączenie SMTP za pomocą telnetu, omówimy procedury uwierzytelniania. Uwierzytelnianie SMTP pomaga zapobiegać dużej ilości spamu docierającemu do skrzynek odbiorczych czytelników, chociaż nie wszystkie serwery wymiany poczty tego wymagają. Zrozumienie uwierzytelniania jest również kluczowe podczas analizowania nagłówków e-maili w celu rozwiązywania problemów z dostarczalnością.

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

Możesz wygenerować swoje base64 za pomocą oprogramowania lub bezpłatnych narzędzi online. Gdy przekażesz informacje do serwera pocztowego, porównuje on te dane z własnymi zapisami, aby określić uwierzytelnienie.

Aby przetestować uwierzytelnianie SMTP za pomocą telnetu, wykonaj następujące kroki:

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

  • Powitaj serwer za pomocą EHLO lub HELO, wprowadź AUTH LOGIN i czekaj na odpowiedź komputera.

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

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

  • Kontynuuj poleceniami MAIL FROM, RCPT TO, DATA i QUIT, aby wysłać swój uwierzytelniony e-mail.

Inne wiadomości

Przeczytaj więcej z tej kategorii

A person is standing at a desk while typing on a laptop.

Kompletna platforma oparta na sztucznej inteligencji, która rośnie wraz z Twoim biznesem.

A person is standing at a desk while typing on a laptop.

Kompletna platforma oparta na sztucznej inteligencji, która rośnie wraz z Twoim biznesem.