Module 4 · 4.1
MX-records en prioriteit
Module 4: Records voor e-mail · Leestijd: 8 minuten
Leerdoel: Na deze les kun je MX-records lezen en instellen, de prioriteit goed kiezen en uitleggen wat er gebeurt als een domein geen MX-record heeft.
Kernbegrippen: MX-record, prioriteit (preference), back-up-MX, mailserver (hostnaam), impliciete MX, null MX, lokale aflevering
Waar moet de mail heen?
Stuurt iemand een mail naar info@example.com, dan moet de mailserver van de afzender uitzoeken bij welke server die mail afgeleverd moet worden. Dat zoekt hij op in de DNS, met een vraag naar het MX-record (Mail eXchanger) van example.com.
Het antwoord is geen IP-adres, maar een lijstje met mailservers, elk met een getal ervoor:
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN MX 20 backup.example.net.Daarna vraagt de verzendende server het A- of AAAA-record van mail.example.com op, en pas dan weet hij welk IP-adres hij moet bellen. Een MX-record wijst dus altijd naar een naam, die zelf weer een A- of AAAA-record heeft.
Het MX-record staat bijna altijd op de domeinnaam zelf (@), want het gaat om het deel achter de @ in het e-mailadres. Wil je mail ontvangen op info@nieuws.example.com, dan heeft nieuws.example.com een eigen MX-record nodig.
Prioriteit: laag gaat eerst
Het getal voor de mailserver heet de prioriteit (in de standaard, RFC 5321, heet het preference). De regel is simpel:
- Hoe lager het getal, hoe eerder die server aan de beurt is.
- Is die server niet bereikbaar, dan probeert de afzender de volgende.
- Hebben twee servers hetzelfde getal, dan verdeelt de afzender de mail willekeurig over beide. Zo kun je de belasting spreiden.
Het getal zelf betekent niets. 0, 1, 5, 10 of 100: alleen de volgorde telt. Een record met prioriteit 10 en een met 20 werkt precies hetzelfde als 1 en 2. Geeft je mailprovider een getal op, neem dat dan over. Geeft hij één server op, dan maakt het getal niet uit.
Een server met een hoger getal noemen we vaak een back-up-MX. Vroeger was dat gebruikelijk: lag je eigen server eruit, dan bewaarde de back-up de mail. Tegenwoordig bewaart een verzendende server mail zelf een paar dagen en probeert hij het opnieuw. Een back-up-MX die niet goed is ingesteld (bijvoorbeeld zonder spamfilter) trekt juist spam aan. Gebruik er dus alleen een als je provider dat zo opgeeft.
Regels voor een goed MX-record
- Een naam, geen IP-adres.
MX 10 192.0.2.25is ongeldig. Maak een A-recordmailmet192.0.2.25en laat de MX naarmail.example.com.wijzen. - Niet naar een CNAME. De naam in een MX-record moet zelf een A- of AAAA-record hebben, geen CNAME (RFC 2181, paragraaf 10.3). Veel servers lossen het toch op, maar niet allemaal.
- De punt aan het eind. In veel panelen typ je
mail.example.com.met een punt. Zonder punt plakt het paneel je domeinnaam er nog eens achter:mail.example.com.example.com. Die naam bestaat niet, en je mail komt niet aan. - De mailserver moet bestaan. Wijst de MX naar een naam zonder A- of AAAA-record, dan komt er niets aan. Dit zien we in de praktijk vaak als iemand de nameservers van zijn domein naar een sitebouwer verhuist: het MX-record gaat mee, maar het A-record van
mailniet. - Oude records weg. Ga je over naar een andere mailprovider, haal dan de MX-records van de oude provider weg. Laat je ze staan, dan komt een deel van je mail nog bij de oude provider binnen.
Geen MX-record: impliciete MX en null MX
Wat gebeurt er als een domein helemaal geen MX-record heeft? Volgens RFC 5321 probeert de verzendende server dan het A- of AAAA-record van de domeinnaam zelf. Dat heet de impliciete MX. Staat je website op een server zonder mail, dan probeert de wereld zijn mail dus bij je webserver af te leveren. Dat geeft vertraging en foutmeldingen bij de afzender.
Wil je duidelijk maken dat een domein nooit mail ontvangt, gebruik dan een null MX (RFC 7505):
example.net. 3600 IN MX 0 .Prioriteit 0 en als mailserver alleen een punt. Een verzender ziet dan meteen dat hij niet hoeft te proberen en stuurt de afzender direct een nette foutmelding. Combineer dit met een SPF-record v=spf1 -all (les 4.3) als het domein ook geen mail verstuurt.
Lokale aflevering: de val bij hosting met mail
Veel hostingpakketten hebben een webserver en een mailserver op één machine. Die server denkt standaard: "mail voor dit domein lever ik zelf af". Verhuis je je mail naar een andere provider, dan pas je de MX-records aan, maar onthoudt de server dat niet vanzelf. Gevolg: mail van je eigen contactformulier, en van andere websites op dezelfde server, blijft op de oude server hangen en komt nooit bij je nieuwe provider aan. De afzender krijgt soms 550 Unknown user terug.
Deze vraag krijgen hostingbedrijven heel vaak. In de meeste panelen zit daarom een schakelaar met een naam als "Gebruik deze server om mijn e-mails af te handelen" of "Lokale mailaflevering". Zet je mail bij een andere partij? Wijzig de MX én zet die schakelaar uit. Doe je alleen het een, dan gaat het mis.
In de praktijk: zo ziet het eruit in een paneel
In dit voorbeeld gebruiken we DirectAdmin. Onder E-mail Beheer, MX Records zie je de MX-records van je domein. Bij elk record typ je de prioriteit in een vakje en de mailserver erachter, met een punt aan het eind. Daaronder staat het vinkje Gebruik deze server om mijn e-mails af te handelen. Bij MX Sjabloon kun je kant-en-klare instellingen voor bijvoorbeeld Microsoft 365 of Google Workspace kiezen.
In Mijn WebOké staat hetzelfde op het tabblad DNS van een domein; de schakelaar heet daar Aflevering.
In cPanel, Plesk, Cloudflare of bij je registrar ziet het scherm er anders uit, maar je vult altijd dezelfde drie dingen in: de naam (@ of leeg), de prioriteit en de mailserver.
Samenvatting
- Het MX-record vertelt waar mail voor je domein heen moet. Het wijst naar een naam, nooit naar een IP-adres of CNAME.
- Laagste prioriteit eerst; gelijke getallen delen de mail; het getal zelf betekent niets.
- Zonder MX probeert de wereld je A-record (impliciete MX). Ontvang je nooit mail, gebruik dan
MX 0 .(null MX). - Verhuis je je mail, verwijder dan de oude MX-records en zet de lokale aflevering op je hostingserver uit.
Quiz
Opdracht
Opzoeken (Z4.1): Zoek de MX-records van wikipedia.org op (of van je eigen domein). Vul in welke mailserver het laagste prioriteitsgetal heeft, en welk getal dat is.
Zelf instellen (O4.1): Maak in je oefenzone twee MX-records: prioriteit 10 naar <code>.dnspractice.eumail. en prioriteit 20 naar <code>.dnspractice.eubackup.. Maak voor beide namen een A-record: <code>.dnspractice.eumail naar 192.0.2.25 en backup naar 192.0.2.26. Klik daarna op Controleren.1 en O4.1.
Verder lezen
De stappen in deze artikelen gelden voor de panelen van WebOké; in andere panelen werkt het vergelijkbaar.
- DirectAdmin handleiding 5.5: MX-records: waar komt je e-mail binnen?
- Je e-mail elders: Microsoft 365, Google Workspace of een eigen mailserver
- Mail versturen via PHP lukt niet, de MX-records wijzen naar elders
- DirectAdmin handleiding 18.9: Ik ontvang geen e-mail meer
- RFC 5321 paragraaf 5.1 (mailroutering), RFC 7505 (null MX)
