Hoe email werkt

Om email-problemen goed op te kunnen lossen is het belangrijk om te snappen wat mailservers precies uitvoeren om een mailtje van A naar B te krijgen. In dit voorbeeld gaan we een mailtje volgen van gmail.com naar acknowledge.nl en gaan we er van uit dat gmail.com de mail zonder smarthost verstuurd.

1. De gebruiker klikt op verzenden, het mailtje komt in de uitgaande mail-queue van een mailserver van gmail.com.

2. De mailserver van gmail.com ziet dat het een mailtje voor ‘acknowledge.nl’ is en gaat het bijbehorende MX-record opvragen. Als inkomende mail voor Acknowledge.nl niet zou werken zou een goede eerste test zijn om te kijken of de MX-records wel kloppen. Dit kun je gemakkelijk zelf testen met behulp van ‘nslookup’:

MX record troubleshooten

MX record troubleshooten

Wat gebeurt er en wat is er te zien;

  • Start een command prompt en start ‘nslookup
  • Na het starten van nslookup, een tool om DNS records op te vragen, geven we aan dat we een record van het type ‘MX’ willen hebben. MX staat voor Mail Exchange: ‘set type=mx
  • Vervolgens typen we de domeinnaam in kwestie in, in dit geval acknowledge.nl.
  • In de output zien we een aantal belangrijke gegevens;
    • MX preference: de mailserver met de laagste preference wordt als eerste geprobeerd, in dit geval zal gmail.com dus in eerste instantie proberen de mail op mail.acknowledge.nl af te leveren.
    • De mail exchanger; dit zijn de domeinnamen waar naar gmail.com een SMTP-connectie op zal zetten. Het IP-adres dat hier bij hoort zou je op kunnen vragen door ‘set type=a‘ te gebruiken en dan ‘mail.acknowledge.nl’ in te type

3. De mailserver bij gmail.com weet nu dat hij de mail voor acknowledge.nl op mail.acknowledge.nl moet afleveren, mocht dat niet lukken dan zal de mail worden afgeleverd bij mailbackup1.kpn.net. Als mail.acknowledge.nl de mail van gmail.com accepteerd is het verhaal voor wat betreft gmail.com hiermee klaar.

  • Om te testen of mail.acknowledge.nl verbindingen accepteert kun je een telnet sessie opzetten naar mail.acknowledge.nl op poort 25. Let op dat dit vaak niet kan vanaf werkstations, poort 25 wordt uitgaand vaak alleen open gezet vanaf de mailserver om de impact van spam-virussen op werkstations te minimalizeren. Dit is ook bij Acknowledge het geval.
  • Voer dit dus bij voorkeur vanaf thuis of een mailserver van een klant zonder mailproblemen uit
  • Start vanuit een command prompt een telnet sessie naar mail.acknowledge.nl om te kijken of de mailserver een mailtje voor gmail.com accepteert;
SMTP connectie testen

SMTP test voorbeeld

  • Als je bij de mail from/rcpt to foutmeldingen krijgt probeer het dan eenst met een < en een > teken om het email-adres heen: mail from: <marno.vandermolengmail.com> bijvoorbeeld.
  • Druk Ctrl + ] om de connectie te verbreken. Type vervolgens quit of exit (verschilt tussen Linux/Windows) om telnet af te sluiten.
  • Let hierbij op de return-codes die je terug krijgt: 250 is altijd goed, 354 geeft aan dat je mag beginnen met je mailtje.
  • Bij het verzenden van een mailtje voert een mailserver zelf exact dezelfde stappen uit zoals hierboven weergegeven, het is dus erg nuttig om dit zelf ‘live’ te kunnen testen.

4. In het geval dat mail.acknowledge.nl niet te benaderen is zal gmail.com proberen de mail bij mailbackup1.kpn.net af te leveren, het idee is dat KPN de mailtjes bewaard tot onze omgeving weer online is. De mailserver bij KPN zal om de zoveel tijd blijven proberen of het zijn mailtjes bij de acknowledge mailserver kan afleveren.

Notes:

Als een domein geen fallbackserver heeft en de mailserver is offline dan zullen de mensen die naar dat domein mailen een mailtje krijgen dat het mailtje niet kon worden afgeleverd, meestal probeerd de verzendende mailserver het zo’n 24 uur voor het besluit het mailtje als ‘onverzendbaar’ te beschouwen en het weg gooit. Op zo’n moment is het bedrijf in kwestie dus niet per email te bereiken wat vaak een grote impact heeft, hopelijk lukt het met deze korte handleiding mail-issues sneller op te lossen.

Als de primaire server van een domein een tijdje offline is dan kan het zo zijn dat de mail die in de tussentijd naar dat domein is verzonden nog een tijdje blijft staan bij de fallback-server, je kunt op zo’n moment het beste contact opnemen met de host van je fallback mailserver (bij acknowledge.nl zou dat dus KPN zijn) en vragen of ze onze mail-queue kunnen legen. Mocht je een technisch iemand aan de lijn krijgen; hij moet de mailserver met onze mailqueue een ETRN-command geven, in sommige gevallen kan dit ook zelf door via telnet op de fallback mailserver in te loggen, door middel van HELO ‘domeinnaam’ aan te geven voor welk domein je een ETRN wil triggeren en vervolgens zal de fallback mailserver de mail opnieuw proberen af te leveren bij de mailserver.

Write a Comment

You must be logged in to post a comment.