
In de wereld van e-mail zijn er veel facetten van testen, maar een van de meest basale tests die je kunt doen, is simpelweg telnetten naar een gegeven SMTP-server. Deze SMTP-controle is nuttig om te bepalen of de meest basale problemen al dan niet bestaan.
Business in a box.
Ontdek onze oplossingen.
Praat met ons verkoopteam
In de wereld van e-mail zijn er vele facetten aan testen, maar een van de meest eenvoudige tests die u kunt doen is simpelweg via telnet een verbinding maken met een bepaalde SMTP-server. Deze SMTP-controle is nuttig voor het bepalen of de meest basisproblemen wel of niet bestaan.
Is de server actief?
Is er een firewall die communicatie blokkeert?
Laat de mailserver relayen van een bepaald domein/e-mailadres toe?
Welke SMTP-commando's ondersteunt de mailserver?
Reageert de server met de juiste hostnaam?
Werkt de verbinding buiten enige software van derden of API's?
Al deze vragen en meer kunnen worden beantwoord met een eenvoudige telnet-test.
Voordat we beginnen, zorg ervoor dat u ons begeleidende stuk bij deze post opent: Waar worden bounceberichten naartoe gestuurd? in een nieuw tabblad zodat u het kunt lezen nadat u klaar bent met deze blog.
Als een opmerking, de commando's die in de volgende voorbeelden worden gebruikt (evenals aanvullende commando's) worden behandeld in sectie 4.1 van RFC 2821.
Hoe verstuur ik een e-mail met Telnet?
Het verzenden van e-mail via telnet kan u helpen leverbetrouwbaarheidsproblemen binnen uw huidige configuratie te identificeren.
Voordat u een e-mail verzendt met telnet, controleer of telnet zowel geïnstalleerd als ingeschakeld is op uw computer. De meeste computers worden geleverd met een vooraf geïnstalleerde telnet-client. Voor die Windows-versies die dat niet hebben, kan men deze installeren door het gedeelte "Programma's en onderdelen" van het configuratiescherm te openen en "Windows-onderdelen in- of uitschakelen" te selecteren. Met dit venster geopend, selecteert u "telnet-client" en klikt u op OK.
Zodra is bevestigd dat er een telnet-client op de server is geïnstalleerd, opent u het terminalvenster waar u uw promptopdrachten invoert. Op Windows gebruikt u de Windows + R, voert u "cmd" in en drukt u op enter. Voor Mac-gebruikers vindt u het terminalpictogram door Finder te openen en te zoeken naar "Hulpprogramma's" op de toepassingspagina of door "terminal" in de Launchpad-zoekfunctie in te voeren.
Vervolgens moeten we een mailserver vinden om in te loggen. Hiervoor hebben we het DNS MX-record voor een bepaald domein nodig. Dit kan worden gevonden met de volgende opdracht (voor deze voorbeelden wordt port25.com gebruikt, maar elk domein kan worden vervangen):
Windows:
nslookup -type=mx port25.com
Niet-gezaghebbend antwoord:
port25.com MX-voorkeur = 100, mailuitwisselaar = mail.port25.com
Linux:
nslookup -type=mx port25.com
Niet-gezaghebbend antwoord:
port25.com mailuitwisselaar = 100 mail.port25.com.
SMTP gebruikt een van de drie poorten — 25, 465 of 587, welke Microsoft Outlook vaak gebruikt. Als uw SMTP-relay een andere poort dan 25 gebruikt zoals in het voorbeeld wordt weergegeven, gebruikt u de poort die door het mailuitwisselingsserverantwoord op de nslookup wordt aangegeven. U kunt ook de poort verifiëren waarop uw SMTP vertrouwen heeft door uw beheerder te vragen of in te loggen op de mailuitwisselingsserver en de protocollen te bekijken.
Vervolgens hebben we de DNS PTR nodig voor het IP dat we gaan gebruiken. Eerst moeten we weten welk IP-adres het internet ons ziet als. Hiervoor kunnen we een website zoals deze gebruiken:
Voer met het IP-adres de volgende opdracht uit, waarbij A.B.C.D het IP-adres is.
Windows:
nslookup -type=ptr A.B.C.D
Niet-gezaghebbend antwoord:
D.C.B.A.in-addr.arpa naam = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Niet-gezaghebbend antwoord:
D.C.B.A.in-addr.arpa naam = server.example.com
server.example.com is slechts een voorbeeld en uw resultaten zullen anders zijn.
Nu we het MX-record voor port25.com en de PTR voor het IP dat we gaan gebruiken hebben, is het tijd om in te loggen op de SMTP-server. Om dit te doen, gebruikt u de volgende opdracht:
telnet mail.port25.com 25
Iets vergelijkbaars met het volgende moet nu worden weergegeven:
Trying 69.63.149.30... Verbonden met mail.port25.com (69.63.149.30). Escape character is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service klaar
Als u op dit punt een foutmelding ontvangt zoals "kan geen verbinding maken", is het ofwel het poortnummer correct of de mailserver heeft problemen.
Het eerste commando dat we naar de mailserver moeten sturen voor onze SMTP-e-mailtester is de EHLO of HELO. Dit is een basisbegroeting die de communicatie tussen de telnet-client en de SMTP-server start. Ook wordt de DNS PTR voor het IP-adres van waaruit we eerder hebben bepaald meegegeven.
EHLO server.example.com
Iets vergelijkbaars met het volgende moet worden geretourneerd:
250-mail.port25.com zegt hallo 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN
Dit toont de SMTP-opdrachten die de SMTP-server accepteert. Niet alle SMTP-servers ondersteunen dezelfde sets van opdrachten. Zo toont Yahoo alleen het volgende:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
En AOL toont alleen één met:
250 DSN
Het volgende commando dat we moeten geven is het MAIL FROM-commando. Dit bepaalt het adres waarnaar bounces worden verzonden. Dit is niet hetzelfde als de vanaf header, die het e-mailadres is dat in een e-mailclient wordt weergegeven.
MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok
Zorg ervoor dat u de domeinnaam gebruikt die overeenkomt met het domein van uw mailserver. Als uw e-mailextensie bijvoorbeeld anycompany.com is, wilt u you@anycompany.com gebruiken in plaats van een externe e-mail zoals you@free-mail-provider.com. Variaties in domeinnamen kunnen ervoor zorgen dat er een foutmelding verschijnt.
Nu het MAIL FROM-commando is verzonden, kunnen we het RCPT TO-commando verzenden. Dit commando vertelt de SMTP-mailserver naar wie het bericht moet worden gestuurd. Dit kan hetzelfde of anders zijn dan de aan header, die het e-mailadres is dat in de e-mailclient wordt getoond.
RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok
Controleer het adres van uw ontvanger opnieuw voordat u het RCPT TO-commando verzendt — een foutmelding die hier wordt weergegeven kan duiden op een verkeerd gespelde of geblokkeerde e-mailontvanger.
Het laatste commando dat moet worden uitgevoerd voordat de body van het bericht wordt gestart, is het DATA-commando. Dit commando laat de SMTP-mailserver weten dat alles wat nu wordt verzonden de body van het bericht is (dat ook de headers bevat).
DATA 354 stuur bericht
Het is belangrijk op te merken dat als een mailserver PIPELINING ondersteunt, zoals mail.port25.com, de SMTP-mailserver mogelijk wacht tot het DATA-commando is gegeven voordat hij reageert op andere commando's na de EHLO/HELO. In dit geval voert u de MAIL FROM, RCPT TO, en DATA-opdrachten uit voordat u op een reactie wacht.
Nu het DATA-commando is verzonden, kunnen we beginnen met het verzenden van de inhoud van het bericht. Dit begint met de verschillende headers. Een bericht moet minimaal een aan, vanaf, onderwerp en datumheader bevatten. De hier ingevoerde headers worden getoond aan de gebruiker in hun e-mailclient.
From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: testbericht verzonden vanuit handmatige telnet-sessie Date: Wed, 11 May 2011 16:19:57 -0400
Met de headers ingesteld, voegen we nu een lege regel toe met een carriage return/line feed (druk gewoon tweemaal op enter) en dan beginnen we met de eigenlijke body van het bericht.
Hallo Wereld, Dit is een testbericht verzonden vanuit een handmatige telnet-sessie. Uw oprechte, SMTP beheerder
Met het bericht afgerond, moeten we de SMTP-server laten weten dat we klaar zijn met het bericht en willen dat de SMTP-mailserver het accepteert. Dit wordt gedaan met een punt op een regel op zichzelf. Als gedurende het schrijven van een bericht een punt op een regel op zichzelf nodig is, moet u 2 punten zetten; de eerste ontsnapt aan de tweede.
. 250 2.6.0 bericht ontvangen
Als u een foutmelding krijgt in plaats van de "ontvangen"-melding, log dan de relevante details en neem contact op met uw e-mailprovider voor meer hulp.
Ten slotte wordt het QUIT commando verzonden om de verbinding te sluiten:
QUIT 221 2.0.0 mail.port25.com zegt tot ziens
Hiermee heeft de mailserver nu het bericht voor aflevering geaccepteerd, uw telnet-e-mailtest is voltooid, en het zou in de inbox van het RCPT TO-adres moeten staan!!!
Hier zijn alle commando's zonder onderbreking:
telnet mail.port25.com 25 Trying 69.63.149.30... Verbonden met mail.port25.com (69.63.149.30). Escape character is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service klaar EHLO server.example.com 250-mail.port25.com zegt hallo 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 stuur bericht From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: testbericht verzonden vanuit handmatige telnet-sessie Date: Wed, 11 May 2011 16:19:57 -0400 Hallo Wereld, Dit is een testbericht verzonden vanuit een handmatige telnet-sessie. Uw oprechte, SMTP beheerder . 250 2.6.0 bericht ontvangen QUIT 221 2.0.0 mail.port25.com zegt tot ziens
Het verzenden van een e-mail met telnet laat je toe om snel verbindingsmogelijkheden te testen en tegen lagere kosten dan robuuste diagnostische apparatuur of software.