
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.
In de wereld van e-mail zijn er veel aspecten aan het testen, maar een van de meest basale tests die je kunt doen, is eenvoudigweg telnetten naar een gegeven SMTP-server. Deze SMTP-controle is nuttig bij het bepalen of de meest basale problemen wel of niet bestaan.
Is de server online?
Wordt de communicatie geblokkeerd door een firewall?
Staat de mailserver relayen van een bepaald domein/emailadres toe?
Welke SMTP-commando's ondersteunt de mailserver?
Reageert de server met de correcte hostnaam?
Werkt de verbinding zonder derde partijsoftware of API's?
Al deze vragen en meer kunnen worden beantwoord met een simpele telnettest.
Voordat we beginnen, zorg ervoor dat je ons begeleidende stuk bij dit bericht opent: Waar worden bounceberichten naartoe gestuurd? in een nieuw tabblad zodat je het kunt lezen nadat je 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?
E-mail verzenden via telnet kan u helpen leverbaarheidsproblemen binnen uw huidige configuratie te identificeren.
Voordat u een e-mail verzendt met telnet, controleert u of telnet zowel geïnstalleerd als ingeschakeld is op uw computer. De meeste computers worden vooraf geïnstalleerd met een telnet-client. Voor die Windows-versies die dat niet doen, kan er één worden geïnstalleerd door het gedeelte 'Programma's en onderdelen' van het configuratiescherm te openen en 'Windows-onderdelen in- of uitschakelen' te selecteren. Zodra dit venster open is, selecteert u 'telnet client' en klikt u vervolgens op OK.
Zodra een telnet-client is geverifieerd als geïnstalleerd op de server, opent u het terminalvenster waarin u uw opdrachtprompt invoert. Op Windows gebruikt u de Windows + R, typt u “cmd” en drukt u op enter. Voor Mac-gebruikers vindt u het terminalpictogram door Finder te openen en naar 'Hulpprogramma’s' te zoeken op de Applicaties-pagina 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 gegeven domein nodig. Dit kan worden gevonden met het volgende commando (voor deze voorbeelden wordt port25.com gebruikt, maar elk domein kan worden vervangen):
Windows:
nslookup -type=mx port25.com
Niet-authentiek antwoord:
port25.com MX-voorkeur = 100, mail exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
Niet-authentiek antwoord:
port25.com mail exchanger = 100 mail.port25.com.
SMTP gebruikt een van de drie poorten — 25, 465 of 587, die Microsoft Outlook vaak gebruikt. Voor geavanceerde configuratie en optimalisatie van mailservers, raadpleeg onze gids over PowerMTA-configuratietips. Als uw SMTP-relay een andere poort dan 25 gebruikt zoals in het voorbeeld wordt weergegeven, gebruikt u de poort die is gespecificeerd in het antwoord van de mail exchange-server op de nslookup. U kunt ook de poort verifiëren waarop uw SMTP vertrouwt door uw beheerder te vragen of in te loggen op de mail exchange-server en de protocollen te controleren.
Vervolgens hebben we de DNS PTR nodig voor het IP dat we gaan gebruiken. Eerst moeten we weten welk IP-adres het internet ons als ons ziet. Om dat te vinden kunnen we een website gebruiken zoals:
Met het IP-adres voert u het volgende commando uit, waarbij A.B.C.D het IP-adres is.
Windows:
nslookup -type=ptr A.B.C.D
Niet-authentiek antwoord:
D.C.B.A.in-addr.arpa naam = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Niet-authentiek 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.
Dus nu we het MX-record voor port25.com en de PTR voor het IP dat we gaan gebruiken, is het tijd om in te loggen op de SMTP-server. Gebruik hiervoor het volgende commando:
telnet mail.port25.com 25
Iets vergelijkbaars met het volgende zou nu moeten worden weergegeven:
Proberen 69.63.149.30... Verbonden met mail.port25.com (69.63.149.30). Ontsnapteken is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP-service gereed
Als u op dit punt een foutmelding zoals 'kan niet verbinden' ontvangt, is het poortnummer ofwel correct of heeft de mailserver problemen.
Het eerste commando dat we aan de mailserver moeten geven 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 verbinden doorgegeven, zoals eerder bepaald.
EHLO server.example.com
Iets vergelijkbaars met het volgende zou moeten 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-commando's die de SMTP-server accepteert. Niet alle SMTP-servers ondersteunen dezelfde sets commando's. Yahoo bijvoorbeeld toont alleen het volgende:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
En aol toont er maar één met:
250 DSN
Het volgende commando dat we moeten geven is het MAIL FROM commando. Dit bepaalt het adres waarnaar bounces worden gestuurd. Dit is niet hetzelfde als de van header, wat het e-mailadres is dat wordt weergegeven in een e-mailclient.
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 het domein van uw e-mail bijvoorbeeld anycompany.com is, gebruik dan je@anycompany.com in plaats van een extern e-mail als je@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 verzonden. Dit kan hetzelfde of anders zijn dan de to header, wat het e-mailadres is dat in de e-mailclient wordt weergegeven.
RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok
Controleer het adres van uw ontvanger dubbel voordat u het RCPT TO-commando verzendt — een foutmelding die hier wordt weergegeven kan wijzen op een verkeerd gespelde of geblokkeerde e-mailontvanger.
Het laatste commando dat moet worden uitgevoerd voordat het verzender van het bericht begint, 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 verzend bericht
Het is belangrijk op te merken dat als een mailserver PIPELINING ondersteunt, zoals mail.port25.com doet, de SMTP mailserver mogelijk wacht totdat het DATA-commando is gegeven voordat hij antwoord geeft op eventuele andere commando's na de EHLO/HELO. In dit geval voert u de MAIL FROM, RCPT TO en DATA commando's uit voordat u wacht op een antwoord.
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 to, from, subject en date header bevatten. De headers die hier worden ingevoerd, worden aan de gebruiker in hun e-mailclient getoond.
Van: "John Smith" <jsmith@port25.com> Aan: "Jane Doe" <jdoe@port25.com> Onderwerp: testbericht verzonden vanuit handmatige telnet-sessie. Datum: Wed, 11 May 2011 16:19:57 -0400
Met de headers ingesteld voegen we nu één blanco regel toe met een carriage return/line feed (druk gewoon twee keer 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. Met vriendelijke groet, SMTP-beheerder
Met het bericht compleet moeten we de SMTP-server laten weten dat we klaar zijn met het bericht en willen dat de SMTP-mailserver het accepteert. Dit gebeurt door een punt op een aparte regel te plaatsen. Als tijdens het schrijven van een bericht een punt op een aparte regel nodig is, moet u 2 punten plaatsen, waarbij de eerste de tweede ontsnapt.
. 250 2.6.0 bericht ontvangen
Als u een foutmelding krijgt in plaats van de 'ontvangen' melding, logt u de relevante details en neemt u contact op met uw e-mailprovider voor verdere ondersteuning. Verbindingsproblemen kunnen ook gerelateerd zijn aan beveiligingsprotocollen - zorg ervoor dat u TLS 1.2 of hoger gebruikt voor veilige verbindingen.
Ten slotte wordt het QUIT-commando verzonden om de verbinding te sluiten:
QUIT 221 2.0.0 mail.port25.com zegt afscheid
Daarmee heeft de mailserver nu het bericht voor levering geaccepteerd, uw telnet-e-mailtest is voltooid en zou in de inbox van het RCPT TO-adres moeten staan!!!
Hier zijn alle commando's zonder onderbreking:
telnet mail.port25.com 25 Proberen 69.63.149.30... Verbonden met mail.port25.com (69.63.149.30). Ontsnapteken is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP-service gereed 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 verzend bericht Van: "John Smith" <jsmith@port25.com> Aan: "Jane Doe" <jdoe@port25.com> Onderwerp: testbericht verzonden vanuit handmatige telnet-sessie. Datum: Wed, 11 May 2011 16:19:57 -0400 Hallo Wereld, Dit is een testbericht verzonden vanuit een handmatige telnet-sessie. Met vriendelijke groet, SMTP-beheerder . 250 2.6.0 bericht ontvangen QUIT 221 2.0.0 mail.port25.com zegt afscheid
Een e-mail verzenden met behulp van telnet stelt u in staat om leverbaarheidsproblemen snel te testen en tegen lagere kosten dan robuuste diagnostische apparatuur of software. Voor meer geavanceerde SMTP-testtools kunt u Swaks met SparkPost gebruiken voor uitgebreide e-mailtesten.