Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 1 · 1.1

Nederlands

De reis van een e-mail

Module 1: Hoe e-mail werkt · Leestijd: 9 minuten

Leerdoel: Na deze les kun je stap voor stap beschrijven hoe een mail van de verzender bij de ontvanger komt, en bij elke stap zeggen welk programma of welke server het werk doet.

Kernbegrippen: mailprogramma (MUA), verzendserver (MSA, submission), mailserver (MTA), MX-record, wachtrij, aflevering (MDA), mailbox, ophalen (IMAP/POP3), envelope, kopregels

Mail is post, geen chatbericht

Als je een chatbericht stuurt, gaat het via één bedrijf: de app van de verzender en de app van de ontvanger praten met dezelfde servers. E-mail werkt anders. De verzender en de ontvanger kunnen elk bij een andere aanbieder zitten: de een bij een hostingbedrijf, de ander bij Gmail, een derde bij Microsoft 365 of bij zijn eigen bedrijfsserver. Toch komt de mail aan. Dat lukt omdat alle mailservers ter wereld dezelfde afspraken volgen.

Je kunt e-mail goed vergelijken met de post. Je schrijft een brief (het bericht), stopt hem in een envelop met een adres (de envelope), brengt hem naar de brievenbus (de verzendserver), het postbedrijf zoekt uit waar het adres ligt (de MX-opzoeking), vervoert de brief naar het juiste sorteercentrum (de ontvangende mailserver) en die legt hem in de brievenbus van de ontvanger (de mailbox). De ontvanger haalt hem daar op wanneer het hem uitkomt.

De stations op een rij

Stel: Anna mailt vanaf anna@example.com naar jan@example.net. Dit gebeurt er:

StapWieWat gebeurt erProtocol
1Anna's mailprogramma (MUA, mail user agent)Anna drukt op Verzenden. Het programma logt in bij de verzendserver van haar aanbieder en geeft de mail af.SMTP-submission, poort 587 of 465, met inloggen
2Verzendserver van example.com (MSA, mail submission agent)Controleert dat Anna echt Anna is (gebruikersnaam en wachtwoord), zet de mail in de wachtrij.
3Uitgaande mailserver (MTA, mail transfer agent)Vraagt in de DNS op: welke server neemt mail aan voor example.net? Dat zijn de MX-records.DNS
4Uitgaande MTA naar ontvangende MTAMaakt verbinding met de server uit het MX-record en levert de mail af.SMTP, poort 25
5Ontvangende server van example.netControleert de mail (spam, virussen, SPF, DKIM, DMARC) en stopt hem in de mailbox van Jan. Dit laatste deel heet de MDA (mail delivery agent).
6Jan's mailprogramma of webmailHaalt de mail op of toont hem rechtstreeks van de server.IMAP (poort 993) of POP3 (poort 995)

Bij kleine aanbieders zijn de MSA, de MTA en de MDA vaak één en hetzelfde programma op één server. Bij grote aanbieders zijn het aparte clusters. Voor jou maakt dat weinig uit: het zijn rollen, geen kastjes.

Let op het verschil tussen stap 1 en stap 4. Allebei gebruiken ze SMTP, het Simple Mail Transfer Protocol (RFC 5321). Maar bij stap 1 log je in en gebruik je poort 587 of 465; dat heet submission (RFC 6409). Bij stap 4 praten twee servers met elkaar op poort 25, zonder in te loggen: de ontvangende server neemt mail aan voor zijn eigen domeinen van wie dan ook. In les 1.4 zie je waarom die scheiding er is.

Stap 3 van dichtbij: de MX-opzoeking

De verzendende server weet niet uit zichzelf waar example.net zijn mail ontvangt. Hij vraagt het aan de DNS:

example.net.   3600  IN  MX  10 mx1.mailprovider.example.
example.net.   3600  IN  MX  20 mx2.mailprovider.example.

Het laagste getal heeft voorrang. De server probeert eerst mx1, en als die niet antwoordt mx2. Daarna vraagt hij het IP-adres van die naam op (A- of AAAA-record) en maakt verbinding.

Twee bijzondere gevallen die je in de praktijk tegenkomt:

  • Geen MX-record. Dan probeert de verzender het A- of AAAA-record van het domein zelf (de "impliciete MX" uit RFC 5321, paragraaf 5.1). Dat is een overblijfsel uit vroeger en werkt niet betrouwbaar; elk domein dat mail ontvangt, hoort een MX te hebben.
  • Een null MX: 0 . Dit betekent: "dit domein ontvangt nooit mail" (RFC 7505). Het domein example.com heeft er zo een. Een verzender geeft meteen op en stuurt een foutmelding terug, in plaats van dagen te blijven proberen.

Hoe MX-records en prioriteiten precies werken, lees je in les 4.1 van de DNS-cursus.

De wachtrij: e-mail mag even duren

Een mail is niet altijd binnen een seconde aangekomen. Antwoordt de ontvangende server niet, of zegt hij "probeer het later nog eens" (een code die met een 4 begint), dan blijft de mail in de wachtrij van de verzendserver staan. Die probeert het later opnieuw, steeds met wat meer tijd ertussen. RFC 5321 (paragraaf 4.5.4.1) adviseert minstens 30 minuten tussen pogingen en pas na 4 tot 5 dagen op te geven. Veel servers sturen na een paar uur alvast een waarschuwing ("delayed", nog niet afgeleverd) en na een paar dagen de definitieve foutmelding.

Dat is een sterk punt van e-mail: is een mailserver een uur stuk, dan raakt er geen mail kwijt. Het is ook de reden dat een mail soms pas uren later binnenkomt. In module 6 zie je hoe je zo'n vertraging herkent.

Envelope en kopregels: twee adressen

Net als bij de post heeft een mail twee soorten adressen:

  • De envelope. Dat zijn de adressen die de servers onderling in het SMTP-gesprek gebruiken: MAIL FROM (de afzender voor foutmeldingen, later te zien als Return-Path) en RCPT TO (de ontvanger). De servers bezorgen op basis van de envelope.
  • De kopregels (headers). Dat is wat in de brief zelf staat: From:, To:, Cc:, Subject:, Date:. Je mailprogramma toont die.

Meestal zijn ze gelijk, maar niet altijd. Een BCC-ontvanger staat wel in de envelope, maar niet in de kopregels; daarom zien anderen hem niet. Een nieuwsbriefdienst zet zijn eigen adres als envelope-afzender, zodat foutmeldingen bij de dienst terechtkomen, terwijl in From: jouw adres staat. En een oplichter kan in From: zetten wat hij wil.

Waarom dit ertoe doet: SPF controleert de envelope-afzender, de gebruiker ziet de From:. Daarom is er DMARC, dat die twee aan elkaar koppelt (module 4).

Waar het kan misgaan

Met dit plaatje kun je bij elk probleem vragen: bij welk station gaat het mis?

  • Verzenden lukt niet (foutmelding meteen in je programma): stap 1 of 2. Bijna altijd instellingen: poort, inloggen, wachtwoord (module 2).
  • Je krijgt een bounce terug: stap 4 of 5. De ontvangende server weigerde de mail, of het adres bestaat niet (module 6).
  • De mail komt aan, maar in de spammap: stap 5. De ontvanger vertrouwt de mail niet (modules 4 en 5).
  • De ontvanger ziet niets, en jij krijgt geen foutmelding: de mail staat misschien nog in een wachtrij, of is bij de ontvanger stil gefilterd. Hier helpen de logboeken van de verzendserver (module 6).
  • Mail komt nergens binnen voor je domein: stap 3. De MX-records kloppen niet, bijvoorbeeld na een verhuizing (module 8).

In de praktijk: zo ziet het eruit bij een hostingpakket

Bij een hostingpakket van WebOké doet één server per pakket alle rollen: je mailprogramma levert de mail af op die server (stap 1 en 2), de server verstuurt hem naar buiten (stap 3 en 4) en ontvangt mail voor je domein (stap 5). In DirectAdmin kun je met E-mail Tracering per bericht zien of het is afgeleverd. Bij andere aanbieders werkt het vergelijkbaar; daar heet zo'n functie bijvoorbeeld "berichttracering" of "mail log".

Samenvatting

  • Een mail gaat van je mailprogramma (MUA) via de verzendserver (MSA/MTA) naar de ontvangende server (MTA/MDA) en van daar naar het mailprogramma van de ontvanger.
  • Versturen vanuit je programma is SMTP-submission met inloggen (587/465); servers onderling praten SMTP op poort 25; ophalen gaat met IMAP of POP3.
  • De verzendende server zoekt de MX-records van het domein achter de @ op. Een null MX (0 .) betekent: dit domein ontvangt geen mail.
  • Een mail die niet meteen kan worden afgeleverd, blijft in de wachtrij en wordt dagen opnieuw geprobeerd.
  • Envelope (Return-Path) en kopregels (From) zijn twee verschillende afzenders. SPF kijkt naar de eerste, de gebruiker naar de tweede.

Quiz

1. Anna verstuurt een mail vanuit Thunderbird. Met welke server praat Thunderbird bij het versturen?



2. Welk record vraagt de verzendende server op om te weten waar mail voor example.net heen moet?



3. De mailserver van de ontvanger is drie uur onbereikbaar. Wat gebeurt er met jouw mail?



4. Je stuurt een mail met jan@example.net in BCC. Waarom zien de andere ontvangers Jan niet?



5. Een domein heeft het MX-record 0 .. Wat betekent dat?



Opdracht

Opdracht Z1.1: De eerste mailserver vinden. Zoek de MX-records op van gmail.com (of van je eigen domein). Vul in welke server als eerste wordt geprobeerd, met zijn prioriteitsgetal, en één IP-adres (IPv4 of IPv6) van die server. Het programma vraagt dezelfde gegevens live op en kijkt na.

Opdracht Z1.1: De eerste mailserver vinden

Zoek de MX-records op (bijvoorbeeld met dig MX gmail.com of een online DNS-tool) en vul in welke server als eerste wordt geprobeerd.





Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

De stappen in deze artikelen gelden voor de panelen van WebOké; bij andere aanbieders werkt het vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…