What Is an MX Record? Email Routing Explained
Technical Guide - DNS Records

What Is an MX Record?

An MX record is the DNS record that routes email to a domain's mail server. This guide explains the syntax, how priority orders delivery, how to look records up, and why an MX record alone cannot tell you whether a domain is a catch-all.

Definition

An MX record (Mail Exchange record) is a DNS resource record that specifies which mail server is responsible for accepting email on behalf of a domain. Each record pairs a server hostname with a priority number - lower numbers are tried first.

What an MX Record Does

When you send an email, your mail server must figure out where to deliver it. It does three lookups:

1. MX lookup

The sending server queries DNS for the recipient domain's MX records to find the mail servers.

2. Priority ordering

It sorts the returned records by preference number. The lowest number is the primary server; higher numbers are fallbacks for when it is down.

3. SMTP delivery

It connects to the chosen server on port 25 and delivers the message via SMTP.

Without an MX record, most mail servers reject email to the domain with a permanent error (often 550 No MX record), so the message cannot be delivered at all.

MX Record Syntax

A complete MX record has three parts: the preference number, the mail server hostname, and the TTL.

# DNS zone file
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN MX 20 backup.example.net.
# What each part means
10 <- priority: lower = preferred
mail.example.com. <- the mail server (absolute hostname)
3600 <- TTL in seconds

Why MX Records Cannot Detect Catch-All Domains

A catch-all domain accepts email to any address at that domain - even ones that don't exist. This behaviour is configured on the mail server itself, not in DNS. A normal domain and a catch-all domain publish identical MX records pointing at the same server; only the server's response to a RCPT TO probe reveals the difference. That is why catch-all detection requires an SMTP probe, never a DNS lookup.

How BounceZero uses MX records

BounceZero reads MX records in the first stage of verification to confirm the domain can receive email at all, identify the mail provider (Gmail, Outlook, Google Workspace, a custom server), and then routes the SMTP probe accordingly. The MX record selects the server; the probe determines the verdict.

How to Look Up MX Records

$ dig MX example.com
;; ANSWER SECTION:
example.com. 3600 IN MX 10 mail.example.com.
$ nslookup -type=MX example.com
example.com mail exchanger = 10 mail.example.com.

No terminal handy? Use the free BounceZero MX Lookup tool - it returns a domain's mail servers and whether they accept mail for the domain.

FAQ

What is an MX record?

An MX (Mail Exchange) record is a DNS record that tells other mail servers which host is responsible for receiving email for a domain, along with a priority value. Without a valid MX record, a domain cannot receive email.

What does MX priority mean?

The priority (preference) number orders the servers. Lower numbers are preferred, so senders try the lowest first and only fall back to higher numbers when the preferred server is unreachable. Two records can share the same priority for load balancing.

Can an MX record tell you if a domain is catch-all?

No. Catch-all behaviour is a server-side configuration that returns 250 OK to every RCPT TO probe. Normal and catch-all domains publish identical MX records, so detection requires actually probing the server, not reading DNS.

How do I look up MX records?

Run `dig MX example.com` or `nslookup -type=MX example.com`, or use a free online MX lookup. BounceZero's MX Lookup tool shows a domain's mail servers and whether they accept mail.

Check MX Records and Verify Addresses Free

DNS checks, SMTP probes, catch-all detection and more - all in one pipeline. 100 free verifications.

Start Free

Ready for bulk verification?

Verify Thousands - Same Up to 99.8% accuracy in internal testing on SMTP-verifiable addresses

Upload a CSV, get clean results in minutes. $3 per 1,000 emails. Credits never expire. No subscription.

Get 100 Free Credits View pricing

No credit card required  -  100 free verifications every month  -  Full 5-stage pipeline

Follow BounceZero