Een MX-record (Mail Exchange record) is een type DNS-record dat specificeert welke mailserver verantwoordelijk is voor het ontvangen van e-mail voor een bepaald domein. Wanneer iemand een e-mail stuurt naar een adres zoals gebruiker@voorbeeld.nl, voert de verzendende mailserver een DNS-lookup uit op de MX-records van voorbeeld.nl om te bepalen naar welke mailserver het bericht moet worden verzonden. Dit maakt e-mailroutering flexibel en betrouwbaar.
MX-records werken met prioriteitswaardes die bepalen in welke volgorde mailservers moeten worden benaderd. Elke MX-record bevat een prioriteitsgetal (preference value) en een hostnaam van een mailserver. Lagere prioriteitswaardes betekenen hogere prioriteit - dus een MX-record met prioriteit 10 wordt altijd eerst geprobeerd vóór een record met prioriteit 20. De verzendende mailserver probeert verbinding te maken met de server met de laagste prioriteitswaarde, en gaat pas naar de volgende server als de eerste niet beschikbaar is. Prioriteitswaardes zijn 16-bit getallen tussen 0 en 65535.
Het belang van MX-records ligt in de betrouwbare aflevering van e-mail. Zonder correct geconfigureerde MX-records kunnen e-mails niet worden afgeleverd aan een domein. MX-records zorgen ervoor dat e-mail wordt gerouteerd volgens de Simple Mail Transfer Protocol (SMTP), de standaard voor alle e-mailverkeer op internet. Ze bieden ook flexibiliteit doordat ze mailafhandeling kunnen delegeren aan gespecialiseerde mailservers, los van de webserver waar een website op draait. Dit betekent dat organisaties hun e-mailinfrastructuur onafhankelijk kunnen schalen en beheren.
Veelvoorkomende configuraties omvatten meerdere MX-records voor redundantie en failover-bescherming. Een typische setup heeft een primaire mailserver (bijvoorbeeld MX 10 mail1.voorbeeld.nl) en één of meer backup-servers (bijvoorbeeld MX 20 mail2.voorbeeld.nl, MX 30 mail3.voorbeeld.nl). Als de primaire server offline is, wordt e-mail automatisch naar de backup-server gestuurd, waardoor e-mailcommunicatie nooit wordt onderbroken. Organisaties kunnen ook load balancing toepassen door meerdere MX-records dezelfde prioriteitswaarde te geven, waarbij het verkeer willekeurig over de servers wordt verdeeld. Het is belangrijk dat MX-records altijd direct verwijzen naar een A-record of AAAA-record van de mailserver - verwijzen naar een CNAME is verboden volgens de RFC-standaarden.
MX-records werden geïntroduceerd op 8 januari 1986 als onderdeel van RFC 974 door Craig Partridge, die destijds werkte bij BBN Laboratories Inc. voor CSNET CIC. RFC 974 definieerde Mail Exchange (MX) resource records als een middel om een domeinnaam te associëren met één of meer hostnamen van mailservers, elk vergezeld van een prioriteitswaarde om selectie te sturen. De motivatie voor MX-records kwam voort uit het groeiende ARPANET en het ontstane internet, waar e-mailverkeer toenam tussen diverse onderling verbonden netwerken, wat flexibele delegatie van mailafhandeling noodzakelijk maakte.
Vóór de introductie van MX-records gebruikte SMTP directe verbindingen naar specifieke hosts of het Unix-to-Unix Copy Protocol (UUCP), wat schaalproblemen opleverde. In januari 1986 vervingen RFC 973 en RFC 974 de oudere MD- en MF-records door MX-records en definieerden ze de MX-lookup met fallback naar A-records. MD- en MF-records waren moeilijk te gebruiken, dus de meeste mensen gebruikten gewoon het A-record. SMTP was al minstens een jaar in gebruik met HOSTS.TXT, en vervolgens nog een paar jaar met A-, MD- en MF-records, voordat MX kwam. Onder die omstandigheden zou MX zonder fallback naar A niet hebben gewerkt vanwege de aanzienlijke geïnstalleerde basis van mailservers die A-records gebruikten.
Het vroege gebruik van MX was om gateways naar andere netwerken te identificeren, maar het kwam pas in breed gebruik toen het DNS goed gevestigd was in het begin van de jaren 1990. RFC 974 werd later vervangen door RFC 2821 (2001), dat op zijn beurt werd vervangen door RFC 5321 (2008), de huidige SMTP-standaard die het gebruik van MX-records specificeert.
Belangrijke mijlpalen in de ontwikkeling van MX-records:
- 1986: RFC 974 introduceert MX-records door Craig Partridge
- 1987: RFC 1035 consolideert DNS-standaarden inclusief MX-records
- Vroege jaren '90: Wijdverbreid gebruik van MX-records naarmate DNS volwassen wordt
- 2001: RFC 2821 vervangt RFC 974 en moderniseert SMTP
- 2008: RFC 5321 wordt de huidige SMTP-standaard