Read the null MX record
02One ordinary MX record uses preference 0 and the root label as its exchange name.
Separate invalid advertisement: MX 0 . and MX 10 mail.example. for the same owner. The publisher MUST NOT advertise that combination.
Source for this drawing: RFC 7505 · Read RFC section 3 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
- Owner
- The domain name to which the DNS record belongs.
- RDATA
- The type-specific data inside a DNS resource record.
- Root label
- The zero-length final DNS label, written as a dot.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
The dot means no mail exchanger, not a server to contact.
- A domain indicates no accepted email with a single MX record: preference 0 and an exchange consisting of the zero-length root label, written as a dot in master files.
- A domain advertising a null MX MUST NOT advertise any other MX record. Do not mix it with ordinary or backup mail exchangers.
- The illustrative record is nomail.example. 3600 IN MX 0 . . The 3600 second TTL is chosen for the example, not prescribed by this RFC. The record uses the existing MX type, not a new DNS type.
Read the last dot as the exchange name; the earlier trailing dot finishes the owner’s fully qualified name. For uncompressed RDATA, preference occupies two zero octets and the root label occupies one zero octet: 00 00 00. This is RDATA only, not the complete DNS response. Field boxes are schematic, not bit-width scale. Supporting RFC1035§§3.1,3.3.9 define label and MX encoding. The mixed-record state is a separate invalid advertisement; RFC7505 gives publishers this prohibition but does not define a repair algorithm for that invalid set.
Read the RFC section ↗