Hur man kontrollerar en SMTP-anslutning med en manuell Telnet-session

Hur man kontrollerar en SMTP-anslutning med en manuell Telnet-session

Hur man kontrollerar en SMTP-anslutning med en manuell Telnet-session

Feb 7, 2020

Publicerad av

Publicerad av

Bird

Bird

Kategori:

Kategori:

E-post

E-post

Ready to see Bird
in action?

Ready to see Bird
in action?

How to Check an SMTP Connection with a Manual Telnet Session

In the world of email, there are many facets to testing, but one of the most basic tests you can do is to simply telnet into a given SMTP server.  This SMTP check is useful in determining if the most basic of problems do or do not exist.

  • Är servern uppe?

  • Finns det en brandvägg som blockerar kommunikationen?

  • Tillåter e-postservern vidarebefordran av en viss domän/e-postadress?

  • Vilka SMTP-kommandon stöder e-postservern?

  • Svarar servern med rätt värdnamn?

  • Fungerar anslutningen utan programvara eller API:er från tredje part?


Alla dessa frågor och många fler kan besvaras med ett enkelt telnet-test.

Before we get started, be sure to open up our companion piece to this post: Till vem skickas Bounce-meddelanden? in a new tab so you can read it after you’re done with this blog.

As a note, the commands used in the following examples (as well as additional commands) are covered in section 4.1 of RFC 2821.


Hur skickar jag ett e-postmeddelande med Telnet?

Att skicka e-post via telnet kan hjälpa dig att identifiera problem med leveransbarheten i din nuvarande konfiguration.


Before you send an email using telnet, confirm telnet is both installed and enabled on your computer. Most computers come pre-installed with a telnet client. For those Windows versions that do not, one can be installed by opening the “Programs and Features” section of the control panel and selecting “Turn Windows features on or off”. With this window open, select “telnet client” and then click OK.

När du har kontrollerat att en telnet-klient är installerad på servern öppnar du terminalfönstret där du anger dina kommandon. I Windows använder du Windows + R, knappar in "cmd" och trycker på enter. Mac-användare hittar terminalikonen genom att öppna Finder och söka efter "Verktyg" på programsidan, eller genom att ange "terminal" i Launchpad-sökfunktionen.

Därefter måste vi hitta en e-postserver att logga in på. 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 kommer port25.com att användas, men vilken domän som helst kan ersättas):

Windows:

nslookup -typ=mx port25.com

Icke auktoritativt svar:

port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -typ=mx port25.com

Icke auktoritativt svar:

port25.com  mail exchanger = 100 mail.port25.com.


SMTP använder en av tre portar - 25, 465 eller 587, som Microsoft Outlook vanligtvis använder. Om SMTP-reläet använder en annan port än 25, som visas i exemplet, använder du den port som anges i mail exchange-serverns svar på nslookup. Du kan också verifiera vilken port SMTP använder genom att fråga administratören eller logga in på e-postservern och granska protokollen.

Next we need the DNS PTR for the IP we are going to use.  First we need to know what IP address the internet sees us as having.  To find that we can use a website like:

http://whatismyipaddress.com/


Med IP-adressen kör du följande kommando, där A.B.C.D är IP-adressen.

Windows:

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

Non-authoritative answer: 

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

Linux:

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

Non-authoritative answer: 

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.

So now that we have the MX record for port25.com and the PTR for the IP we are going to use, it is time to log in till SMTP server.  To do so, use the following command:

telnet mail.port25.com 25

Något som liknar följande bör nu visas:

Försöker 69.63.149.30... Ansluten till mail.port25.com (69.63.149.30). Escape-tecken är '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP-tjänst klar

Om du får ett felmeddelande som "cannot connect" vid denna tidpunkt är antingen portnumret korrekt eller så har e-postservern problem.

Den first command we need to issue till  mail server for our SMTP email tester is the EHLO  or HELO.  This is a basic greeting that starts the communication between the telnet client and the SMTP server.  Also passed is the DNS PTR for the IP address from which we are connecting as determined previously.

EHLO server.example.com

Något som liknar följande bör returneras:

250-mail.port25.com hälsar 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN

This shows the SMTP commands that the SMTP server accepts.  Not all SMTP servers support the same sets of commands. For example, yahoo only shows the following:

250-8BITMIME 250-STORLEK 41943040 250 PIPELINING

Och aol visar bara en med:

250 DSN

Den next command we need to issue is the MAIL FROM command.  This determines the address to which bounces are sent. This is not the same as the from header, which is the email address shown in an email client.

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


Se till att du använder det domännamn som motsvarar din e-postservers domän. Om domänen för din e-post t.ex. är anycompany.com ska du använda you@anycompany.com i stället för ett externt e-postmeddelande som you@free-mail-provider.com. Variationer i domännamn kan leda till att ett felmeddelande visas.


Now that the MAIL FROM  command has been sent we can send the RCPT TO  command.  This command tells the SMTP mail server to who the message should be sent. This can be the same or different than the to header, which is the email address shown in the email client.


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

Dubbelkolla mottagarens adress innan du skickar kommandot RCPT TO - ett felmeddelande som visas här kan tyda på att e-postmottagaren är felstavad eller blockerad.

The last command to run before starting the body of the message is the DATA  command.  This command lets the SMTP mail server know that everything else about to be sent is the body of the message (which also contains the headers).


DATA 354 Skicka meddelande

It is important to note that if a mail server supports PIPELINING, as mail.port25.com does, the SMTP mail server may wait until the DATA command is issued before responding to any other commands after the EHLO/HELO.  In this case, enter the MAIL FROM, RCPT TO, and DATA  commands before waiting for a response.


Now that the DATA command has been sent we can start sending the message contents.  This starts with the various headers. At minimum a message should contain a to, from, subject, and date header. The headers entered here will be shown to the user in their email client.


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

När rubrikerna är klara lägger vi till en tom rad med en vagnretur/radmatning (tryck bara på enter två gånger) och sedan börjar vi med själva meddelandetexten.

Hello World, Detta är ett testmeddelande som skickats från en manuell telnet-session. Med vänliga hälsningar, SMTP-administratör

With the message complete, we need to tell the SMTP server that we are done with the message and want the SMTP mail server to accept it.  This is done with a period on a line by itself. If during the writing of a message a period on a line by itself is needed, you must put 2 periods, the first escaping the second.


.   250 2.6.0 message received

Om du får ett felmeddelande i stället för meddelandet "mottaget" ska du logga relevanta uppgifter och kontakta din e-postleverantör för mer hjälp.

Lastly, the QUIT  command is sent to close the connection:

QUIT 221 2.0.0 mail.port25.com säger adjö

With that the mail server has now accepted the message for delivery, your telnet send email test is complete, and it should be sitting in the inbox of the RCPT TO address!!!

Här följer alla kommandon utan avbrott:

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


Genom att skicka ett e-postmeddelande via telnet kan du snabbt och billigt testa anslutningsfunktionerna jämfört med robust diagnostikutrustning eller programvara.


Hur testar jag SMTP med Telnet-autentisering?

Nu när du vet hur du kontrollerar en SMTP-anslutning med telnet ska vi diskutera autentiseringsprocedurer. SMTP-autentisering hjälper till att förhindra att stora mängder skräppost når läsarnas inkorgar, men det är inte alla e-postservrar som kräver det.


Den främsta skillnaden i moderna autentiseringsprotokoll är förekomsten av en base64-kodning. Base64 omvandlar binära data till det ASCII-textformat som e-postservrar kräver för att dataöverföringen ska lyckas. Det är ett sätt att representera dina inloggningsuppgifter - en kombination av text - i ett numeriskt format som datorn kan förstå.

Du kan generera din base64 med hjälp av programvara eller kostnadsfria onlineverktyg. När du har överfört informationen till e-postservern jämför den dessa data med sina register för att fastställa autentisering.


Genomför följande steg för att testa SMTP-autentisering via telnet:

  • Öppna terminalen och anslut till e-postservern med hjälp av telnet-servernamnet och åtkomstkommandot - mail.port25.com i exemplet ovan.

  • Greet the server with EHLO or HELO, enter AUTH LOGIN, and wait for the computer’s response.

  • Ange det base64-kodade användarnamnet och låt servern svara.

  • Ange lösenordet kodat i base64 och du bör få ett svar av typen "authentication succeeded".

  • Fortsätt med MAIL FROM, RCPT TO, DATA och QUIT för att skicka din autentiserade e-post.

Your new standard in Marketing, Betalningar & Sales. It's Bird

The right message -> to the right person -> vid right time.

By clicking "See Bird" you agree to Bird's Meddelande om integritet.

Your new standard in Marketing, Betalningar & Sales. It's Bird

The right message -> to the right person -> vid right time.

By clicking "See Bird" you agree to Bird's Meddelande om integritet.