Artykuły

A A A
Drukuj Ekportuj do PDF
Opublikowane: 2007.02.19 10:54 | Michał Bednarz | Aktualizacja: 2011.10.07 12:06

Testowanie połączenia z serwerem SMTP przy użyciu programu Telnet

tagi: Outlook
Często pojawiającym się pytaniem dotyczącym programu Outlook jest problem z wysyłaniem poczty przez serwer SMTP. Problem ten może występować bezpośrednio po skonfigurowaniu konta lub pojawić się nagle. W takich wypadkach użytkownicy często starają się szukać przyczyny problemu w samym programie Outlook. Tymczasem bardzo rzadko Outlook jest odpowiedzialny za brak możliwości wysyłania wiadomości. Zazwyczaj problem jest spowodowany błędną konfiguracją konta lub blokowaniem portów komunikacyjnych.

Często pojawiającym się pytaniem dotyczącym programu Outlook jest problem z wysyłaniem poczty przez serwer SMTP. Problem ten może występować bezpośrednio po skonfigurowaniu konta lub pojawić się nagle. W takich wypadkach użytkownicy często starają się szukać przyczyny problemu w samym programie Outlook. Tymczasem bardzo rzadko Outlook jest odpowiedzialny za brak możliwości wysyłania wiadomości. Zazwyczaj problem jest spowodowany błędną konfiguracją konta lub blokowaniem portów komunikacyjnych przez inne programy, takie jak programy antywirusowe, czy zapory sieciowe, co uniemożliwia połączenie się z serwerem SMTP.

Typowy błąd zgłaszany przez program Outlook, wygląda następująco:

 Łączenie z serwerem nie powiodło się. Konto: 'outlook.pl', Serwer: 'smtp.outlook.pl', Protokół: SMTP, Port: 25, Zabezpieczenie (SSL): Nie, Błąd łączy: 10060, Numer błędu: 0x800CCC0E. 

Najprostszym i najszybszym testem na sprawdzenie, czy winna leży po stronie Outlook'a, jest próba wysłania wiadomości pocztowej na swój własny adres przy użyciu programu telnet. Jest to program, który umożliwia nam nawiązanie z konsoli linii poleceń połączenia bezpośrednio z serwerem pocztowym na poziomie protokołu komunikacyjnego TCP/IP i konwersację z serwerem przy wykorzystaniu protokołu SMTP (Simple Mail Transport Protocol). Podstawowy protokół SMTP jest bardzo prostym protokołem tekstowym, dlatego nawet mało doświadczony użytkownik nie będzie miał problemów z wysłaniem wiadomości pocztowej przy użyciu komend SMTP.

W poniższym przykładzie przetestujemy połączenie do serwera SMTP o nazwie outlook.pl dla konta pocztowego info@outlook.pl i wyślemy wiadomość testową. Pogrubioną zieloną czcionką zaznaczone zostały te komendy, które wpisywane są przez użytkownika. Czcionką zieloną niepogrubioną zaznaczone zostały komendy wyświetlane przez serwer SMTP. Po wpisaniu tekstu komendy, należy wcisnąć przycisk Enter, aby ją wykonać. Aby przeprowadzić test, należy postąpić w następujący sposób:

Kliknąć przycisk Start, wybrać polecenie Uruchom i w polu edycji wpisać:

cmd

Uruchomiona zostanie konsola linii poleceń. Należy uruchomić w niej program telnet z dwoma argumentami. Pierwszym powinna być nazwa serwera, z którym chcemy się połączyć, drugim - numer portu TCP, na którym chcemy połączyć się z serwerem. Ponieważ łączymy się z serwerem SMTP dlatego używamy dobrze znanego numeru portu SMTP - 25:

telnet outlook.pl 25

Jeśli łączenie z serwerem nie powiedzie się, to wyświetlony zostanie następujący komunikat:

 Łączenie z outlook.pl...Nie można nawiązać połączenia z hostem na porcie 25: Połączenie nie powiodło się 

W tym momencie już wiemy, że istnieją jakieś problemy z połączeniem i że należy ich szukać w konfiguracji komputera i sieci, a nie w programie Outlook.

Jeśli połączenie z serwerem się uda, to na ekranie zobaczymy komunikat powitalny, na przykład:

 220-adi.ehost.pl ESMTP Exim 4.52 #1 Tue, 13 Feb 2007 22:36:18 +0100 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. 

Teraz możemy zacząć wysyłać komendy do serwera SMTP. Pierwsza z nich to komenda EHLO, po której powinna nastąpić nazwa naszego komputera:

EHLO codetwo

Serwer odpowie nam wyświetlając informacje o obsługiwanych rozszerzeniach protokołu SMTP, np.:

 250-adi.ehost.pl Hello alfa [193.239.56.225] 250-SIZE 52428800 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP 

Wpisujemy komendę MAIL FROM z adresem, z jakiego wysyłana jest wiadomość, możemy podać własny adres (lepiej jest jednak podać adres zewnętrzny - zobacz komentarz do artykułu poniżej):

MAIL FROM:info@outlook.pl

Serwer powinien zaakceptować adres odpowiadając na przykład:

250 OK

Teraz wpisujemy komendę RCPT TO i podajemy adres, na który chcemy wysłać wiadomość. Powinien to być adres, którego konto znajduje się na serwerze SMTP, z którym się połączyliśmy. Tutaj również użyjmy naszego adresu:

RCPT TO:info@outlook.pl

Serwer powinien zaakceptować adres odbiorcy odpowiadając na przykład:

250 Accepted

Teraz możemy wydać komendę DATA, aby poinformować serwer, że jesteśmy gotowi do wpisania treści wiadomości:

DATA

Serwer odpowie, że jest gotowy do przyjęcia wiadomości, na przykład:

354 Enter message, ending with "." on a line by itself

Możemy wprowadzać treść wiadomości, jej koniec powinien być oznaczony przez pojedynczy znak kropki w nowej linii:

 Subject:test z telnetu To jest wiadomosc testowa. . 

Serwer potwierdzi odebranie wiadomości, na przykład:

250 OK id=1HHFZx-0006L4-Oy

Teraz pozostaje nam jeszcze tylko podanie komendy QUIT, aby zakończyć połączenie z serwerem:

QUIT

Przebieg całego procesu wysyłania wiadomości widoczny jest na obrazku poniżej. Tekst zaznaczony na zielono to komendy wprowadzane przez użytkownika. Pozostały tekst to odpowiedzi serwera.

Rysunek

Jeśli uda nam się wysłać wiadomość testową ze swojego na swój własny adres przy użyciu programu telnet, a takiej samej wiadomości nie możemy wysłać używając programu Outlook, oznacza to, że faktycznie problem jest związany z programem Outlook. Jeśli jednak nie uda nam się wysłać poprawnie wiadomości przy użyciu programu telnet, to znaczy, że wina nie leży po stronie Outlook'a i powinniśmy szukać przyczyn problemu w konfiguracji naszego komputera lub połączenia do sieci Internet.

Autor: Michał Bednarz


Komentarze 9 Masz uwagi do tej strony? Napisz

m.bednarz 2007.02.19 11:45
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Jedna uwaga do artykułu:

W komendzie MAIL FROM lepiej jest podać adres SMTP z serwera innego niż ten, który testujemy. W przykładzie z artykułu nie powinien to więc być adres obsługiwany przez serwer outlook.pl. Jeśli w komendzie MAIL FROM podamy adres z testowanego serwera, to możemy otrzymać odpowiedź, że najpierw powinniśmy się uwierzytelnić.

W komendzie RCPT TO powinniśmy jednak zawsze podawać adres z serwera, który testujemy, tak jak jest to w artykule.

_______________________
Pozdrawiam,
Michał [Microsoft Outlook MVP]
5" target="_blank">C2ExchangeRules - dodawanie stopek do wiadomości na serwerze Exchange
___________________________________________
Pozdrawiam,
Michał Bednarz
http://www.outlook.pl
C2PublicFolders - publiczne foldery w Outlook'u bez Exchange Server'a
burzak 2007.02.19 16:47
0 oceń pozytywnie   oceń negatywnie 0
avatar Ekspert WSS
 
A nie powinno być HELO codetwo Edytowano 1 raz. Ostatnio 2007-02-19 16:47:49 przez burzak.
m.bednarz 2007.02.19 17:18
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Chodzi o to, że powinno być HELO zamiast EHLO? Ja radziłbym użyć raczej EHLO, bo celem naszym jest próba komunikacji z serwerem SMTP podobnie, jak robi to Outlook. A Outlook użyje komendy EHLO. Może po komendzie EHLO okaże się, że serwer jej nie obsługuje i dzięki temu poznamy przyczynę, dlaczego nie możemy wysłać wiadomości z Outlook'a. Choć prawdę mówiąc nie wiem, czy spotyka się jeszcze serwery, które nie obsługują EHLO.

_______________________
Pozdrawiam,
Michał [Microsoft Outlook MVP]
5" target="_blank">C2ExchangeRules - dodawanie stopek do wiadomości na serwerze Exchange
___________________________________________
Pozdrawiam,
Michał Bednarz
http://www.outlook.pl
C2PublicFolders - publiczne foldery w Outlook'u bez Exchange Server'a
burzak 2007.02.19 20:39
0 oceń pozytywnie   oceń negatywnie 0
avatar Ekspert WSS
 
Dzięki za wyjaśnienia :)
pioruncr 2007.02.19 21:30
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
A co jeśli serwer wymaga uwierzytelniania??

dany28 2007.02.21 4:23
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Oj, sam się niepotrzebnie zamieszałeś :)

"Często pojawiającym się pytaniem dotyczącym programu Outlook jest problem z odbieraniem poczty z serwera SMTP"

Outlook, ani żaden inny program nie odbiera nic z serwera STMP, tylko wysyła.

"W komendzie MAIL FROM lepiej jest podać adres SMTP z serwera innego niż ten, który testujemy"

Bardzo często stosowanym rozwiązaniem jest rozdzielenie serwera przyjmującego pocztę (MX) od serwera służącego wysyłaniu poczty (SMTP). Outlook łączy się z tym drugim, więc raczej MAIL FROM powinien zawierać mail z domeny obsługiwanej przez serwer, tak właśnie robi to Outlook którego to chcemy przetestować, a czy wymaga logowania to już inna sprawa.

Nawet jeśli to ten sam serwer, to przy podaniu adresu z domeny nieobsługiwanej przez serwer możemy zostać odrzuceni przez filtr SPF (sprawdzający czy możemy z tego IP wysyłać maile tej domeny).

Infocity - aplikacje internetowe, systemy pocztowe
dany28 2007.02.21 4:39
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
jesli serwer wymaga uwierzyteniania, to możemy sie zalogowac, serwer przewaznie obsługuje wiele metod logowania, najczęsciej stosowaną jest AUTH LOGIN

witamy się:
EHLO costam
potem:
AUTH LOGIN
serwer poprosi o nazwe uzytkownika:
334 VXNlcm5hbWU6
my wpisujemy nazwe użytkownika zakodowaną base64, np:
VXNlcm5hbWU6
serwer poprosi o haslo
334 UGFzc3dvcmQ6
my wpisujemy hasło, tez zakodowane base64, np:
UGFzc3dvcmQ6

serwer odpowie czy się udało zalogowac czy nie, jesli tak to dalej jedziemy normalnie, czyli MAIL FROM, RCPT TO, DATA, QUIT








Infocity - aplikacje internetowe, systemy pocztowe
Infocity - aplikacje internetowe, systemy pocztowe
tapis 2008.02.29 14:35
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
A czy wie ktoś jak przesyłać tą metodą polskie znaki (temat,treść maila), aby po odebraniu tak wysłanej wiadomości były polskie znaki w liście, a nie "krzaczki"?
Dzięki za odp.
Pozdrawiam
Wojtek

tapis 2008.02.29 17:00
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Z tematem w mailu gdzie są polskie znaki sobie poradziłem.
Subject:=?ISO-8859-2?Q? temat listu z polskimi znakami ?=

W miejsce polskich znaków wstawiamy odpowiednie kody: np. ó to =F3, ł to =B3.

Nie wiem nadal jak należy przesłać polskie znaki w treści maila.

pozdr.
Wojtek

Dodaj komentarz

avatar

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Autor Michał Bednarz
avatar
 

Współpracuję z firmą informatyczną CodeTwo http://www.outlook.pl specjalizującą się w tworzeniu oprogramowania i rozwiązań bazujących na platformie Exchange oraz rozwiązań zarządzających ruchem e-mail, przydzielaniem zasobów oraz procesami workflow. Tematem Exchange Server’a i Microsoft Outlook’a zajmujemy się od 1997 roku. Ostatnio implementujemy również oprogramowanie do komunikacji internetowej dla urządzeń PDA. Pomagam rozwiązywać problemy związane z MS Outlook i Exchange na f

Załóż konto
WSS to serwis, który łączy dziesiątki tysięcy specjalistów IT w Polsce, zajmujących się szeroko pojętymi technologiami Microsoft. Portal działa od 2003 roku, i oprócz setek publikacji technicznych, rozwijającego się forum - portal to ludzie, którzy go tworzą. To właśnie z myślą o nich warto codziennie nas odwiedzać.

Dowiedz się więcej o WSS