---
title: "MX record lookup: check a domain’s mail servers"
description: "Look up a domain’s MX records for free. See every mail server in priority order with its IP addresses and reverse DNS, the provider behind it, and problems that stop mail arriving."
url: "https://nextmail.sh/tools/mx-lookup"
---

Tools

# MX record lookup See where a domain’s mail is delivered.

Enter a domain to list its MX records in the order senders try them, with the addresses and reverse DNS behind every mail server and anything that would stop mail arriving.

## How to look up MX records

1. 01
   
   Enter the domain
   
   Type the part after the @, such as yourdomain.com. An email address or a link works too, because only the domain is read.
2. 02
   
   Read the servers in order
   
   The table lists every mail server from the first senders try to the last, with its addresses, reverse DNS and time to live.
3. 03
   
   Fix what is flagged
   
   Each finding says what is wrong and how to fix it. Look the domain up again once the DNS change has had time to spread.

## What is an MX record?

An MX (mail exchanger) record is the DNS record that tells the rest of the internet where to deliver email for a domain. When someone writes to you@yourdomain.com, their mail server looks up the MX records of yourdomain.com and connects to the server they name.

Each MX record has two parts: a priority number and the host name of a mail server. A domain can publish several, and senders always try the lowest number first.

MX records decide only where mail arrives. They have nothing to do with how your mail leaves, which SPF, DKIM and DMARC govern, so changing MX records never stops you sending.

If a domain publishes no MX record at all, senders fall back to its own A or AAAA record and try to deliver there. That rarely reaches a mail server, so every domain that receives mail should publish MX records, and one that does not should say so with a null MX.

## How MX priority works

The priority, also called the preference, is a number from 0 to 65535. Lower numbers are tried first, so a record at 10 is used before one at 20. Only the order matters, not the size of the gap.

When the first server cannot be reached, the sender moves on to the next number. If every server fails, it keeps the message in its queue and retries for several days before it gives up and bounces it.

Servers that share a number are equals. Senders choose between them at random, which spreads incoming mail across them.

A backup server at a higher number helps only if it filters spam as carefully as the primary, because spammers often aim at backup servers on purpose.

## MX records for common providers

These are the values each provider publishes for a standard setup. Copy the exact records from your provider’s admin console, which wins wherever it differs.

| Provider | Priority | Mail server | Notes |
| --- | --- | --- | --- |
| Google Workspace | 1 | `smtp.google.com` | The single record Google gives domains set up since 2023. |
| Google Workspace (older setup) | 1, 5, 5, 10, 10 | `aspmx.l.google.com, alt1.aspmx.l.google.com, alt2.aspmx.l.google.com, alt3.aspmx.l.google.com, alt4.aspmx.l.google.com` | Five records, aspmx first, then alt1 and alt2 at 5 and alt3 and alt4 at 10. Still valid. |
| Microsoft 365 | 0 | `<domain>.mail.protection.outlook.com` | Your domain with dots turned into dashes, such as contoso-com. Some tenants are given a host ending in mx.microsoft instead, so copy what the admin center shows. |
| Zoho Mail | 10, 20, 50 | `mx.zoho.com, mx2.zoho.com, mx3.zoho.com` | US data centre. Other regions use their own domain, such as mx.zoho.eu or mx.zoho.in. |
| Proton Mail | 10, 20 | `mail.protonmail.ch, mailsec.protonmail.ch` | Two records, mail first and mailsec as the backup. |
| Fastmail | 10, 20 | `in1-smtp.messagingengine.com, in2-smtp.messagingengine.com` | Two records, in1 first and in2 as the backup. |
| iCloud Mail | 10, 10 | `mx01.mail.icloud.com, mx02.mail.icloud.com` | For a custom domain. Both records share priority 10. |
| Cloudflare Email Routing | Set by Cloudflare | `route1.mx.cloudflare.net, route2.mx.cloudflare.net, route3.mx.cloudflare.net` | Cloudflare adds all three records with priorities of its own when you turn routing on. |
| Amazon SES | 10 | `inbound-smtp.<region>.amazonaws.com` | For receiving mail, and only in AWS regions where SES receives email. |

- **Provider**
  Google Workspace
- **Priority**
  1
- **Mail server**
  `smtp.google.com`
- **Notes**
  The single record Google gives domains set up since 2023.

- **Provider**
  Google Workspace (older setup)
- **Priority**
  1, 5, 5, 10, 10
- **Mail server**
  `aspmx.l.google.com, alt1.aspmx.l.google.com, alt2.aspmx.l.google.com, alt3.aspmx.l.google.com, alt4.aspmx.l.google.com`
- **Notes**
  Five records, aspmx first, then alt1 and alt2 at 5 and alt3 and alt4 at 10. Still valid.

- **Provider**
  Microsoft 365
- **Priority**
  0
- **Mail server**
  `<domain>.mail.protection.outlook.com`
- **Notes**
  Your domain with dots turned into dashes, such as contoso-com. Some tenants are given a host ending in mx.microsoft instead, so copy what the admin center shows.

- **Provider**
  Zoho Mail
- **Priority**
  10, 20, 50
- **Mail server**
  `mx.zoho.com, mx2.zoho.com, mx3.zoho.com`
- **Notes**
  US data centre. Other regions use their own domain, such as mx.zoho.eu or mx.zoho.in.

- **Provider**
  Proton Mail
- **Priority**
  10, 20
- **Mail server**
  `mail.protonmail.ch, mailsec.protonmail.ch`
- **Notes**
  Two records, mail first and mailsec as the backup.

- **Provider**
  Fastmail
- **Priority**
  10, 20
- **Mail server**
  `in1-smtp.messagingengine.com, in2-smtp.messagingengine.com`
- **Notes**
  Two records, in1 first and in2 as the backup.

- **Provider**
  iCloud Mail
- **Priority**
  10, 10
- **Mail server**
  `mx01.mail.icloud.com, mx02.mail.icloud.com`
- **Notes**
  For a custom domain. Both records share priority 10.

- **Provider**
  Cloudflare Email Routing
- **Priority**
  Set by Cloudflare
- **Mail server**
  `route1.mx.cloudflare.net, route2.mx.cloudflare.net, route3.mx.cloudflare.net`
- **Notes**
  Cloudflare adds all three records with priorities of its own when you turn routing on.

- **Provider**
  Amazon SES
- **Priority**
  10
- **Mail server**
  `inbound-smtp.<region>.amazonaws.com`
- **Notes**
  For receiving mail, and only in AWS regions where SES receives email.

## The parts of an MX record

In a zone file an MX record reads: example.com. 3600 IN MX 10 mail.example.com.

- **`name` example.com.**
  The domain the record is for. Mail to any address at that domain follows it. A subdomain such as mail.example.com needs MX records of its own.
- **`TTL` 3600**
  How many seconds resolvers may keep the answer. Lower it a day before you move mail so the change takes effect quickly, then raise it again.
- **`priority` 0 to 65535**
  The order senders try the servers in, lowest first. Servers with the same number share the load.
- **`mail server` mail.example.com.**
  The host name of the server that accepts the mail. It must have its own A or AAAA record, and must not be an IP address or a CNAME.
- **`null MX` 0 .**
  A single record with priority 0 and a dot as the host, defined in RFC 7505. It states that the domain accepts no mail, so senders bounce instead of retrying.
- **`implicit MX` A, AAAA**
  With no MX record at all, senders treat the domain’s own address as its mail server. Relying on it is fragile, so publish MX records or a null MX.

## Common MX problems and how to fix them

### The MX points at a CNAME

Some DNS hosts let you point an MX record at an alias. RFC 2181 forbids it, and some senders refuse to deliver.

How to fix Point the MX record at the final host name, the one with its own A or AAAA record.

### The MX is an IP address

An MX record must hold a host name. An address in its place is ignored or refused by most senders.

How to fix Create an A record such as mail.yourdomain.com for the address, then point the MX record at that name.

### No MX record at all

Senders fall back to the domain’s own address, usually a web server that refuses mail, so messages bounce or wait in queues.

How to fix Publish the MX records from your mail provider, or a null MX (0 .) if the domain should receive no mail.

### Old records left after a move

Records from the previous provider keep receiving part of your mail, which then lands in mailboxes nobody reads.

How to fix Delete every MX record that does not belong to the new provider.

### Two providers mixed together

With MX records for two providers, senders split mail between them by priority and availability, so some messages arrive in each.

How to fix Keep only the records of the provider that holds your mailboxes, unless you run a filtering service in front of it on purpose.

### A mail server that does not resolve

The host named in the MX record has no A or AAAA record, often after a typo or a deleted record.

How to fix Correct the host name, or restore its address record.

### A private address

The mail server resolves to an address such as 10.x.x.x or 192.168.x.x, which works only inside one network.

How to fix Publish the server’s public address, or the host name your provider gives you.

### Changes that seem to take days

Resolvers keep the old answer until its TTL runs out, so mail can reach the old servers for a while after a change.

How to fix Lower the TTL to 300 seconds a day before the move, change the records, and raise it again once mail reaches the new servers.

## Questions this raises

Receive mail on your own domain with Nextmail

Add your domain and Nextmail lists the MX, SPF and DKIM records it needs, then checks that they are published.

[Set up a domain](https://nextmail.sh/signup.md)

[SPF record checker](https://nextmail.sh/tools/spf-checker.md)[DKIM record checker](https://nextmail.sh/tools/dkim-checker.md)[Deliverability checker](https://nextmail.sh/tools/deliverability.md)[Email address checker](https://nextmail.sh/tools/email-check.md)[All tools](https://nextmail.sh/tools.md)
