MX Lookup

Find out which hosts accept mail for a domain, and in what order senders will try them.

Secure server processingWeb & SEOWorkingNo account needed

What this tool does

MX Lookup answers one question: which mail exchangers a domain publishes, and at what preference. Every run is a server job, because a browser has no way to ask a DNS resolver itself. The domain you type travels over an encrypted connection to the OmniKitly processing service, which resolves A, AAAA, CNAME, MX, NS, TXT and SOA in one pass and returns all of it as JSON; the page then reads the MX section of that answer and rebuilds it as a table, sorted lowest preference first.

Each host is matched against a list of eighteen mail platforms, so aspmx.l.google.com is labelled Google Workspace and a name ending in mail.protection.outlook.com is labelled Microsoft 365, while anything outside that list is reported as self-hosted or unknown rather than guessed at. The lowest preference is marked primary and the rest fallback. A target that is a raw IP address, a host name with no dot in it, a preference above the 65535 maximum and two different providers sharing one domain are each called out as problems, while equal preferences and a lone host with nothing behind it are noted as things to weigh rather than faults.

Two answers never reach that table. A domain publishing no MX record at all, and a domain publishing a null MX, both leave the reader with nothing to sort, and the page falls back to printing the raw resolver JSON instead — which is still the useful answer, because the NS and SOA entries in it separate a domain that does not exist from one that simply declines mail. That same JSON is offered as a dns-yourdomain.json download on every run, while the Copy button hands back only the preference and host columns as tab-separated lines, not the provider or the role.

The box takes one domain and nothing else. Its placeholder and its Load sample button still offer pasted MX records, left over from an offline reading mode that is not wired up: whatever sits in the box is sent to the resolver as a host name, so a block of pasted records comes back refused as an invalid hostname. Beyond that, no SMTP connection is ever opened, so nothing here tells you whether a host answers on port 25; and only MX is interpreted, so SPF, DKIM and DMARC belong to SPF Inspector, DKIM Record Checker and DMARC Inspector.

One detail explains why the saved file is wider than the report. The page asks the service for record type MX, but the resolver operation behind it never reads that request — it always fetches the same seven types and returns them whole. Narrowing the answer to mail happens afterwards, in the browser, when the table is built, so the extra sections are not an accident of the download: they are the entire answer, kept rather than thrown away.

How to use it

  1. Type one domain. Plain form is best: example.com. The service lowercases it and drops a leading http:// or https://, everything from the first slash or colon onward, and a trailing dot. Whatever survives must be letters, digits, dots and hyphens only and no longer than 253 characters, so an @ from an email address, a space or a non-ASCII letter comes back as "That is not a valid hostname".
  2. Run the lookup. The job is queued on the processing service with a fifteen-second budget, and comes back with the whole resolver answer rather than a mail-only slice of it.
  3. Read the table. Preference, host, provider and role for every MX record, ordered by preference, with any problems and notes listed underneath.
  4. Keep the result. Copy puts the preference and host columns on the clipboard as tab-separated lines. The download button saves dns-yourdomain.json, the full resolver answer sitting behind the table.

Processing & privacy

Secure server processing. This operation requires temporary server processing.

Common use cases

Confirming a migration to a new provider

After mail moves to Google Workspace or Microsoft 365, the provider column shows whether the outgoing host is still sitting in the list quietly catching messages.

Working out why mail never arrives

An empty MX section narrows the fault fast: no published mail records at all is a different problem from a record aimed at the wrong host, and the two look identical from the sender's side.

Spotting a single point of failure

One host with nothing behind it earns a note of its own — if it goes unreachable, senders retry for a day or two and then bounce the message back.

Auditing someone else's mail setup

Preference order and two providers competing for one domain both surface in a single pass, with the resolver JSON kept alongside as the evidence.

Questions

Where does the lookup run?
The resolver query is made by the OmniKitly service, never by your browser. There is no file in this job — what travels is the domain name, over an encrypted connection — and the job record holding that name is deleted along with the result once the retention window expires.
Why does the download hold A and TXT records too?
One resolver operation fetches A, AAAA, CNAME, MX, NS, TXT and SOA together, and the saved file keeps everything it found. The table on screen is built from the MX section alone, so the other records live in the JSON rather than in the report above it.
Does it check that the mail server works?
No. It reads DNS and stops there. Whether a host is reachable, greets properly on port 25 or accepts mail for your domain needs an SMTP conversation, and this tool never opens one.
What happens if the domain does not exist?
You get the raw resolver output with every list empty, because a not-found name and a no-data answer are both turned into an empty list here. The NS and SOA entries in the same file tell the two apart — a real domain still has those.
Why is my provider shown as self-hosted or unknown?
The provider column matches host names against a fixed list of eighteen common platforms. Your own server, a smaller host or a white-labelled gateway falls outside that list and is reported as unrecognised, which is more useful than a confident wrong answer.
Can I paste MX records I already have?
Not today. The placeholder advertises it and the sample button loads a block of MX lines, but the offline reader behind them never runs from this page — the box is sent to the resolver as a host name, and pasted records fail as an invalid hostname.
Can I check several domains in one go?
No. One lookup takes one domain, and there is no batch field. Checking a list means running them one at a time, which the hourly ceiling below puts a practical bound on.
Is there a limit on how often I can run it?
Two of them. Each lookup gets a fifteen-second budget on the service, and without an account twenty jobs in an hour is the ceiling — the twenty-first is refused with a retry-after rather than queued. Confirming an email address on an account raises that ceiling to a hundred.

Related tools