i e-postvärlden finns det många aspekter att testa, men en av de mest grundläggande testerna du kan göra är att helt enkelt telnet till en given SMTP-server. Detta test är användbart för att bestämma om de mest grundläggande problemen gör eller inte existerar.
- är servern uppe?
- finns det en brandvägg som blockerar kommunikationen?
- tillåter e-postservern återutläggning av en viss domän / e-postadress?,
- vilka SMTP-kommandon stöder e-postservern?
- svarar servern med rätt värdnamn?
- fungerar anslutningen utanför någon programvara från tredje part eller API: er?
alla dessa frågor och mer kan besvaras med ett enkelt telnet-test.
innan vi börjar, var noga med att öppna vår följeslagare till det här inlägget:var skickas Studsmeddelanden? i en ny flik så att du kan läsa den när du är klar med den här bloggen.,
som en anteckning omfattas de kommandon som används i följande exempel (samt ytterligare kommandon) i avsnitt 4.1 i RFC 2821.
de flesta datorer är förinstallerade med en telnet-klient. För de Windows-versioner som inte gör det kan man installeras genom att öppna avsnittet” Program och funktioner ”på kontrollpanelen och välja”slå på eller av Windows-funktioner”. Med det här fönstret öppet väljer du ”telnet client” och klickar sedan på OK.
När en telnet-klient har verifierats för att installeras på servern måste vi först hitta en e-postserver för att logga in., För detta behöver vi DNS MX-posten för en viss domän. Detta kan hittas med följande kommando (för dessa exempel port25.com kan ersättas):
Windows:
nslookup-type=mx port25.com
icke-auktoritativt svar:
port25.com MX preferens = 100, mail exchanger = mail.port25.com
Linux:
nslookup-type=mx port25.com
icke-auktoritativt svar:
port25.com postväxlare = 100 mail.port25.com. - herr talman!,
nästa behöver vi DNS PTR för IP vi ska använda. Först måste vi veta vilken IP-adress internet ser oss ha. För att upptäcka att vi kan använda en webbplats som:
med IP-adressen kör följande kommando, där A. B. C. D är IP-adressen.
Windows:
nslookup-type=ptr A. B. C. d
icke-auktoritativt svar:
D.C.B.A.in-addr.arpa namn = server.example.com
Linux:
nslookup-type=ptr A. B. C. d
icke-auktoritativt svar:
D. C. B. A.,in-addr.arpa namn = server.example.com
server.example.com är bara ett exempel, och dina resultat kommer att vara annorlunda.
så nu när vi har MX-posten för port25.com och PTR för IP vi ska använda, det är dags att logga in på SMTP-servern. För att göra det, använd följande kommando:
telnet mail.port25.com 25
något som liknar följande bör nu visas:
det första kommandot vi behöver utfärda till e-postservern är EHLO eller HELO., Detta är en grundläggande hälsning som startar kommunikationen mellan telnet-klienten och SMTP-servern. Också godkänd är DNS PTR för IP-adressen från vilken vi ansluter som bestämt tidigare.
EHLO server.example.com
Något som liknar följande ska returneras:
250-mail.port25.com säger hello250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250-8BITMIME250-XACK250-XMRG250-STORLEK 54525952250-VERP250 DSN
Detta visar SMTP-kommandon som SMTP-servern accepterar., Inte alla SMTP-servrar stöder samma uppsättningar kommandon. Till exempel visar yahoo bara följande:
250-8BITMIME250-SIZE 41943040250 PIPELINING
och AOL visar bara en med:
250 DSN
nästa kommando vi behöver utfärda är kommandot MAIL från. Detta bestämmer adressen till vilken studsar skickas. Detta är inte samma sak som från-rubriken, vilket är e-postadressen som visas i en e-postklient.
MAIL FROM: <[email protected]> 250 2.1.,0 MAIL ok
Nu när posten från kommandot har skickats kan vi skicka RCPT till kommandot. Det här kommandot talar om för SMTP-e-postservern till vem meddelandet ska skickas. Detta kan vara samma eller annorlunda än to-rubriken, vilket är den e-postadress som visas i e-postklienten.
RCPT TO: <[email protected]>250 2.1.5 <[email protected]> ok
det sista kommandot som körs innan du startar meddelandets kropp är datakommandot., Det här kommandot låter SMTP-postservern veta att allt annat som ska skickas är meddelandets kropp (som också innehåller rubrikerna).
DATA354 skicka meddelande
Det är viktigt att notera att om en e-postserver som stöder PIPELINING, som mail.port25.com inte den SMTP-e-postserver får vänta tills DATA kommandot utfärdats innan du svarar på några andra kommandon efter EHLO/HELO. I det här fallet anger du posten från, RCPT till och datakommandon innan du väntar på ett svar.,
nu när datakommandot har skickats kan vi börja skicka meddelandeinnehållet. Detta börjar med de olika rubrikerna. Ett meddelande ska minst innehålla en till, från, ämne och datumrubrik. De rubriker som anges här kommer att visas för användaren i sin e-postklient.
med rubrikerna, lägger vi nu till en tom rad med en vagnretur/linjematning (tryck bara på enter två gånger) och sedan börjar vi själva meddelandets kropp.
Hello World,det här är ett testmeddelande som skickas från en manuell telnet-session.,Din verkligen, SMTP-administratör
med meddelandet klart måste vi berätta för SMTP-servern att vi är klara med meddelandet och vill att SMTP-postservern ska acceptera det. Detta görs med en period på en linje av sig själv. Om det under skrivandet av ett meddelande behövs en period på en linje i sig, måste du lägga 2 perioder, den första flyr den andra.
. 250 2.6.0 Meddelande mottaget
slutligen skickas kommandot Avsluta för att stänga anslutningen:
QUIT221 2.0.0 mail.port 25.,com säger adjö
med att e-postservern nu har accepterat meddelandet för leverans, och det borde sitta i inkorgen i RCPT för att ta itu med!!!
här är alla kommandon utan avbrott:
~ Scott