MX Records Explained: Syntax, Priority Semantics, Null MX, and the Canonical Mail-Delivery Sequence (RFC 1035 + RFC 5321 + RFC 7505)

A focused operational reference on MX records: what an MX record IS (a DNS resource record type defined by RFC 1035 §3.3.9 that maps a domain name to a list of mail-exchanger hostnames willing to accept mail for the domain), the priority semantics (a 16-bit preference value where LOWER numbers indicate HIGHER preference per RFC 5321 §5.1, with ties resolved by random selection), the canonical mail-delivery sequence (sender MTA queries MX, sorts by preference, resolves each target to A or AAAA, connects via SMTP on port 25), the implicit MX rule (RFC 5321 §5.1 falls back to the domain A/AAAA record ONLY if no MX records exist — partial MX deployments disable this fallback), the backup-MX anti-pattern and why most backup MXes are spam magnets, the relationship between MX records and email authentication (SPF and DMARC apply to OUTBOUND mail and do NOT cross over to the MX/inbound side), per-provider MX patterns for Google Workspace, Microsoft 365, Amazon SES, and self-hosted Postfix or Exim, the null MX record (RFC 7505: a single MX with preference 0 and target "." that explicitly rejects all inbound mail), MX records and the MTA-STS / DANE transport-security overlays, TTL recommendations, the no-CNAME rule (RFC 1034 §3.6.2 and RFC 2181 §10.3 prohibit MX targets from being CNAME aliases), common mistakes, troubleshooting the "mail is bouncing" diagnostic funnel, and an FAQ for the questions operators ask when an MX configuration is not working as expected.

This reference is provided in English. MX records are specified in English-language RFCs (RFC 1035, RFC 5321, RFC 7505) and the canonical vocabulary (mail exchanger, preference, priority, RDATA, implicit MX rule, null MX, backup MX, MUST NOT point to a CNAME) does not translate. We keep the body in the source language so technical terms remain consistent with the specifications.

TL;DR

  • An MX (Mail Exchanger) record is a DNS resource record type (RFC 1035 §3.3.9) that maps a domain name to a list of mail-server hostnames willing to accept mail for that domain.
  • MX priority semantics: LOWER preference values mean HIGHER priority. An MX with preference 10 is tried BEFORE one with preference 20. RFC 5321 §5.1 mandates random selection among MX records with equal preference values.
  • The implicit MX rule (RFC 5321 §5.1) falls back to the A/AAAA records of the domain ONLY if no MX records exist. Publishing any MX record disables the fallback entirely, so a partial MX deployment is worse than no MX at all.
  • MX records cannot point at CNAME aliases. RFC 1034 §3.6.2 and RFC 2181 §10.3 require MX targets to resolve directly to A or AAAA records. Pointing an MX at a CNAME produces undefined behaviour across MTAs.
  • MX records do NOT affect SPF or DMARC directly. SPF and DMARC apply to OUTBOUND mail (authenticating the sending server); MX applies to INBOUND mail (telling senders where to deliver). The two operate on opposite sides of the SMTP transaction.
  • Null MX (RFC 7505: a single MX with preference 0 and target "." — the DNS root name) explicitly tells senders the domain does not accept mail. Use this for parked domains, marketing landing pages, and internal-only domains.
  • Backup MX records are usually a liability. Spammers detect the backup and send all their spam there; the backup either accepts everything (backscatter) or rejects forged senders (NDR storm). Either do not publish a backup or configure it with IDENTICAL anti-spam policies as the primary.
  • Recommended TTL: 3600 to 86400 seconds. MX records change rarely (typically only when migrating between mail providers), so longer TTLs improve cache efficiency. Lower to 300 to 3600 seconds BEFORE planned migrations and raise back afterwards. See DNS propagation for the pre-emptive-TTL- reduction pattern.

1. Overview: what an MX record is for

Internet email delivery from a sender to a receiver is a multi-hop DNS-mediated process. When a user sends mail to user@example.com, the sending Mail Transfer Agent (MTA) does not directly know which server accepts mail for example.com. It performs a DNS lookup for the MX (Mail Exchanger) record of example.com, receives one or more MX records back, and uses them to identify the SMTP server(s) authoritative for receiving mail addressed to that domain.

The MX record type is one of the original DNS resource record types, defined in RFC 1035 section 3.3.9 (1987) and tightly integrated into the SMTP protocol by RFC 5321 section 5.1. The MX record carries two pieces of data: a 16-bit unsigned integer called the "preference" value (commonly called priority by operators) and a hostname pointing to a mail server. The preference determines the order in which the sending MTA tries the listed servers; the hostname is then resolved to an A or AAAA record to obtain the actual IP address to connect to.

This page is the foundational reference for the help cluster on MX records. For the cryptographic primitives under DKIM signing, see DKIM cryptography basics. For DNS propagation mechanics that apply to MX changes, see DNS propagation. For the transport-security overlay that validates the MX hostname against an HTTPS-published policy, see MTA-STS explained. For per-provider deployment guides whose first step is pointing MX at the provider, see the DMARC for Microsoft 365 and DMARC for Google Workspace guides.

2. MX record syntax (RFC 1035 §3.3.9)

An MX record in standard DNS zone-file format looks like:

example.com.    3600    IN    MX    10    mx.example.com.

The fields, left to right:

  • example.com. — the name the record is published under (the domain that wants to receive mail). The trailing dot anchors it as a fully-qualified name.
  • 3600 — the TTL (time-to-live) in seconds. See section 11.
  • IN — the class (Internet). Universal for all public-internet DNS records.
  • MX — the record type.
  • 10 — the preference value (priority). See section 3.
  • mx.example.com. — the MX target hostname. MUST resolve directly to an A or AAAA record (NOT a CNAME — see section 12).

A typical mail-server deployment publishes multiple MX records for redundancy:

example.com.    3600    IN    MX    10    mx1.example.com.
example.com.    3600    IN    MX    20    mx2.example.com.
example.com.    3600    IN    MX    30    mx3.example.com.

Most cloud-DNS provider UIs (Cloudflare, Route 53, Google Cloud DNS, GoDaddy, Namecheap) ask for the preference and target as separate fields rather than requiring the operator to type the full zone-file syntax. The resulting record is functionally identical.

3. Priority semantics: lower is higher

The MX preference field is a 16-bit unsigned integer (range 0 to 65535) that determines the ORDER in which a sending SMTP server tries the listed MX targets. RFC 5321 section 5.1 specifies the algorithm:

  1. Sort the received MX records by preference value, ASCENDING. (Lower preference = higher priority.)
  2. Among records with the same preference value, select one randomly. RFC 5321 mandates random selection to spread load across equally-preferred servers; many real-world implementations actually round-robin or use the order in which they were received from DNS.
  3. Resolve the selected target to an A or AAAA record. If multiple A/AAAA records are returned, the sender picks one (typically randomly).
  4. Attempt SMTP connection on port 25.
  5. If the connection fails or the SMTP session ends with a temporary failure (4xx), move to the next MX target in preference order. If the SMTP session ends with a permanent failure (5xx), do not retry to other MX targets — the message is rejected.

The conventional priority spacing (10 / 20 / 30 rather than 1 / 2 / 3) is purely cosmetic: it leaves room to insert a new MX at preference 15 between an existing 10 and 20 without renumbering everything. The relative ordering is what matters, not the absolute values.

Some operators set all MX records to the same preference value as a load-balancing strategy (publishing three MX targets all at preference 10 means senders pick randomly among them). This works but is more brittle than the cluster-aware load balancing that major providers do at the A-record layer (Google Workspace's smtp.google.com resolves to multiple IPs via DNS round-robin, providing load balancing without needing equal-priority MX records).

4. The canonical mail-delivery sequence

From the sender-MTA perspective, delivering mail to user@example.com involves this sequence:

  1. Extract the recipient domain. Parse example.com from the RCPT TO envelope address.
  2. Query MX records. Send a DNS query for MX example.com to the configured recursive resolver. The resolver returns zero or more MX records.
  3. Apply the implicit MX rule if needed. If no MX records are returned (NODATA response, distinct from NXDOMAIN), fall back to the implicit MX rule: treat the A/AAAA records of the domain itself as if they were a single MX target with preference 0. If neither MX nor A/AAAA records exist, bounce with permanent failure (no such domain).
  4. Check for null MX. If the only MX record returned is the RFC 7505 null MX (preference 0, target "."), bounce immediately with permanent failure 550.
  5. Sort and select. Sort by preference value ascending; select the lowest-preference target. Among ties, select randomly.
  6. Resolve the MX target. Query A and AAAA records for the selected MX target hostname. Pick one IP.
  7. Connect via SMTP on port 25. Open a TCP connection to the resolved IP on port 25 (or port 587 / 465 for submission, though port 25 is the MX-to-MX standard). Begin the SMTP HELO / MAIL FROM / RCPT TO / DATA exchange.
  8. Handle transient failures. If the SMTP session ends with a 4xx response (transient failure: server busy, temporary policy reject), retry the same target later or move to the next-preference MX target on the next retry. Standard retry schedules are exponential-backoff over several days before bouncing as undeliverable.
  9. Handle permanent failures. If the SMTP session ends with a 5xx response (permanent failure: no such user, policy reject), bounce the message back to the original sender with the receiver's reason code. Do NOT retry against backup MX targets — the 5xx is a final answer for the message.

Steps 7-9 are the SMTP layer; everything before is the DNS-MX-resolution layer this page covers. The MX-resolution behaviour is identical across all major sending MTAs (Postfix, Exim, Sendmail, Gmail's outbound, Microsoft 365's outbound, Amazon SES) because they all implement RFC 5321 §5.1.

5. Backup MX: usually a liability

The backup MX pattern (publishing multiple MX records at different preference values so senders fall back to a secondary server when the primary is unreachable) made operational sense in the 1990s when primary mail servers had multi-day outages and operators wanted a secondary to queue mail until the primary came back. In modern internet email, backup MX records are frequently a NET LIABILITY rather than a benefit.

The classic bad backup-MX pattern:

  • The operator publishes a primary MX (preference 10) at mx1.example.com with production-grade anti-spam filtering, recipient validation, and SPF / DKIM / DMARC enforcement.
  • The operator publishes a backup MX (preference 20) at mx2.example.com with weaker or absent anti-spam filtering, often a "catch-all" configuration that accepts mail for unknown recipients and queues it.
  • Spammers detect the backup MX (it is in public DNS) and send all their spam directly to the backup, bypassing the primary entirely.
  • The backup either accepts everything (creating backscatter and ruining the operator's sending reputation), or generates non-delivery-reports (NDRs) for the forged sender addresses spammers use (creating an NDR storm that floods third parties).

Modern best practice:

  • Do not publish a backup MX at all. Major email providers (Gmail, Microsoft 365, ProtonMail, FastMail) operate their own multi-datacenter MX clusters and do not require operator-configured backup MX records. If Google Workspace's MX cluster has an outage, falling back to your home-built secondary is unlikely to improve things.
  • If you DO publish a backup MX, configure it with IDENTICAL anti-spam, SPF, DKIM, DMARC, and recipient-validation policies as the primary. The backup must accept the same recipients the primary accepts and reject the same recipients the primary rejects. The simplest way to achieve this is to run the same MTA software with the same configuration file on both servers.
  • Consider using cloud-provider MX clusters as your primary. Gmail's primary MX (smtp.google.com) is itself a multi-datacenter cluster with built-in failover. Pointing at it removes the need for backup MX at the operator level.

6. MX records and email authentication

A common operator misconception: changing the MX record affects SPF, DKIM, or DMARC. It does not, except in one narrow case.

SPF (SPF explained) authenticates the SENDING server of an outbound message — when your domain sends mail to a receiver, SPF tells the receiver which IPs are authorised to send on your domain's behalf. SPF is purely an outbound concern. The MX record tells other senders where to deliver mail TO your domain. The two operate on opposite sides of the SMTP transaction.

DKIM (DKIM explained) attaches a cryptographic signature to outbound mail and lets receivers verify the signature via your published DKIM public key in DNS. Like SPF, DKIM is an outbound concern. The MX record is irrelevant to DKIM signing or DKIM verification.

DMARC (DMARC record tags) is the policy layer on top of SPF and DKIM. DMARC alignment is determined by the FROM: header domain matching the SPF MAIL FROM domain (strictly or relaxed per the aspf= tag) or the DKIM signing domain (strictly or relaxed per the adkim= tag). The MX record is not part of any DMARC alignment rule.

The one narrow case where MX and SPF interact: the SPF mx mechanism. An SPF record like v=spf1 mx -all authorises the IPs corresponding to the MX records of the domain. This was useful in early SPF deployments where a single server handled both inbound and outbound mail and the operator wanted "the same server that receives mail for me is the only server that sends mail for me" semantics. In modern deployments where inbound and outbound use completely different infrastructure (Google Workspace for inbound, Mailgun for outbound), the SPF mx mechanism is rarely useful and frequently misleading. Prefer explicit include: or ip4: / ip6: mechanisms that name the actual sending infrastructure.

7. MX patterns by provider

The MX values you publish depend on which mail provider hosts your inbound mail. The canonical patterns for major providers:

  • Google Workspace: a single MX record pointing at smtp.google.com at any preference (commonly 1 or 10). Google's DNS round-robin returns multiple IPs behind the single hostname, providing automatic load balancing and failover without needing operator-configured backup MX records. The older multi-target pattern (aspmx.l.google.com / alt1.aspmx.l.google.com / alt2.aspmx.l.google.com / aspmx2.googlemail.com / aspmx3.googlemail.com) was deprecated in favour of the single smtp.google.com entry.
  • Microsoft 365: a single MX record pointing at example-com.mail.protection.outlook.com where the prefix is the operator's tenant domain with dots replaced by hyphens. The tenant-specific MX hostname is shown in the Microsoft 365 admin console under the Domains section.
  • Amazon SES inbound: a single MX record pointing at inbound-smtp.{region}.amazonaws.com where {region} is the SES receiving region (us-east-1, eu-west-1, etc.).
  • Self-hosted Postfix / Exim / Sendmail: an MX record pointing at the operator's mail server hostname, typically mail.example.com or mx.example.com, which itself has an A record at the mail server's public IP. Operators should also publish a matching PTR (reverse DNS) record at the IP pointing back to the same hostname — receivers reject mail from IPs without matching PTR.
  • ProtonMail business: two MX records at mail.protonmail.ch (preference 10) and mailsec.protonmail.ch (preference 20). This is one of the few modern cases where operator-configured backup MX is the provider's recommended deployment.
  • FastMail: two MX records at in1-smtp.messagingengine.com (preference 10) and in2-smtp.messagingengine.com (preference 20).

For every provider, check the provider's current onboarding documentation to confirm the exact MX values to publish — providers occasionally change their MX hostnames as they restructure their infrastructure.

8. Null MX (RFC 7505): explicitly no mail

RFC 7505 (2015) defines a special MX record that explicitly tells senders the domain does NOT accept mail. The syntax is:

example.com.    3600    IN    MX    0    .

The target field is a literal dot (.) which represents the DNS root name. The preference value MUST be 0. When a sending SMTP server queries MX for the domain and receives this response, RFC 7505 requires it to immediately bounce the message back to the original sender with permanent failure code 550 and a textual reason like "Mail is not accepted at this domain."

The use cases for null MX:

  • Parked domains. A domain registered for branding protection or future use that should never accept mail. Without a null MX, mail to user@parked-domain.example either bounces with a confusing "no MX records found" error or falls back to the A/AAAA record (per the implicit MX rule) and attempts SMTP against the web server, which produces additional confusion.
  • Marketing landing-page domains. A domain used only for a campaign landing page that the operator does not want operators to send mail to. Null MX produces a clean, immediate bounce rather than a prolonged retry cycle.
  • Internal-only domains. A domain used only for internal services (e.g. internal.corp.example) published in public DNS for certificate issuance but not intended to receive mail from the outside internet.
  • Subdomains of mail-receiving domains. If your organisational domain example.com receives mail but subdomains like web.example.com or app.example.com do not, publishing null MX records on the subdomains prevents stray mail from reaching your primary mail server.

Null MX is supported by all major sending MTAs in current versions (Postfix since 3.0, Exim since 4.94, Sendmail since 8.16, the proprietary MTAs operated by Google and Microsoft). For older MTAs that do not recognise null MX, the behaviour falls back to "MX target is a literal dot which cannot be resolved", resulting in a permanent failure with a less clean error message but still a bounce.

9. MX records and MTA-STS / DANE transport security

Two modern transport-security overlays operate at the MX-target layer:

  • MTA-STS (MTA-STS explained) is an HTTPS-published policy that lists the operator's MX hostnames and instructs sending MTAs to require TLS to those specific hostnames. The MTA-STS policy enumeration of MX hostnames is independent of the DNS MX record and must be kept in sync: if you change your MX target, you must update the MTA-STS policy's mx: list at the same time.
  • DANE (MTA-STS vs DANE) publishes TLSA records under the MX target hostname's _25._tcp.{mx-hostname} name that pin the TLS certificate (or certificate authority) the MX server uses. DANE validation requires the receiver's DNS to be DNSSEC-signed.

For both overlays, the MX hostname is the anchor: the operator's MX record points at a hostname; the transport-security policy associates that hostname with a TLS certificate. Changing the MX target requires coordinated updates to whichever transport- security overlay is deployed. See MTA-STS vs DANE for the per-overlay comparison.

10. TTL recommendations for MX records

MX records are the canonical example of a "set once and rarely change" record. The operational change frequency is low (typically only when migrating between mail providers or rebuilding mail infrastructure, perhaps once every several years), and the cache benefit of long TTLs is significant (the millions of recursive resolvers across the internet do not need to re-query the authoritative nameserver every hour for a record that has not changed in three years).

The recommended TTL for stable production MX records is 3600 to 86400 seconds (1 hour to 24 hours). Most major email providers recommend 3600 seconds as a balance between cache efficiency and the time required for a planned migration to complete.

Before a planned MX migration:

  1. Two TTL cycles BEFORE the migration, lower the TTL on the existing MX record to 300 seconds (5 minutes). For a current TTL of 86400, this means lowering 48 hours before the migration. The TTL change must propagate BEFORE the actual MX change can take advantage of the shorter window.
  2. At the migration moment, publish the new MX record (still at 300- second TTL). Recursive resolvers see the new MX within 5 minutes.
  3. After the migration is confirmed stable (typically 24 to 72 hours after the change), raise the TTL back to 3600 or 86400 for cache efficiency.

See the DNS propagation deep dive for the complete pre-emptive-TTL-reduction pattern that applies to MX, DKIM, DMARC, and every other actively-managed DNS record.

11. Common MX-record mistakes

  • Pointing MX at a CNAME. Forbidden by RFC 1034 §3.6.2 and RFC 2181 §10.3. The MX target MUST be a hostname that resolves directly to an A or AAAA record, not to another DNS alias. Common accidental occurrence: pointing MX at mail.example.com while mail.example.com is itself a CNAME to smtp.example.com elsewhere. Verify with dig that the MX target has a direct A/AAAA record, not a CNAME chain.
  • Forgetting the trailing dot. In zone-file syntax, the MX target must end with a literal dot to anchor it as a fully-qualified name. An MX target without the trailing dot will have the zone's origin appended: mx.example.com (no dot) in a zone file for example.com becomes mx.example.com.example.com — almost certainly not what the operator intended. Cloud DNS provider UIs usually handle this automatically; manual zone-file editing requires care.
  • Missing PTR record on the MX target IP. Receivers reject mail from IPs without a matching reverse-DNS record. If your MX is mx.example.com at IP 203.0.113.10, the PTR record at 10.113.0.203.in-addr.arpa should resolve back to mx.example.com. Without matching PTR, your outbound mail will be rejected by Gmail, Microsoft 365, Yahoo, and most other major receivers.
  • Partial MX deployment that defeats the implicit MX rule. Publishing any MX record disables the RFC 5321 implicit-MX fallback to A/AAAA. An operator who publishes a single broken MX (typo in the target hostname, target that does not resolve, target that is offline) will not fall back to the A record of the domain; they will bounce. If you cannot deploy MX correctly, do not deploy MX at all and let the implicit-MX fallback to your domain's A record handle mail delivery.
  • MX priority direction confusion. Operators sometimes assume HIGHER preference numbers mean higher priority. The opposite is true: LOWER preference numbers are tried FIRST. A backup MX at preference 10 and a "primary" at preference 20 means senders try the backup first.
  • Publishing equal-preference MX records and expecting deterministic selection. Per RFC 5321 §5.1, senders MUST select randomly among MX records with equal preference. If you publish two MX records both at preference 10, you cannot predict which one any given message will hit. Use distinct preference values if you need a deterministic primary-vs-backup relationship.
  • Forgetting to remove the null MX when starting to accept mail. If you previously published a null MX because the domain was parked and you now want to accept mail, the null MX must be REMOVED and replaced with a real MX before mail flows. Senders see the null MX first and bounce.
  • Inconsistent MX between public DNS and internal split-horizon DNS. If your domain uses split-horizon DNS (different views for internal vs external queries), the public-DNS MX records are what other senders use; internal MX records affect only internal queries. Inconsistency causes "mail works from inside but not from outside" or vice versa.

12. Troubleshooting "mail is bouncing"

When MX-based mail delivery fails, work the diagnostic funnel:

  1. Confirm the MX record is published. dig +short MX example.com should return one or more lines of the form 10 mx.example.com.. If it returns nothing, the MX is either not published or not propagated yet — see DNS propagation.
  2. Confirm the MX target resolves to an A/AAAA record (not a CNAME). dig +short A mx.example.com should return one or more IP addresses directly. If it returns nothing, or returns a CNAME chain, the MX is misconfigured per the no-CNAME rule.
  3. Confirm the MX target IP is reachable on port 25. From a host that has outbound port-25 access (not a residential ISP — port 25 is blocked from most residential connections), telnet mx.example.com 25 should produce a 220 SMTP banner. If the connection times out, port 25 is blocked upstream or the server is down.
  4. Confirm PTR records on the outbound IP. For outbound mail being rejected by receivers, dig -x <outbound-ip> should return a PTR pointing back to your MX hostname (or a closely-related hostname). Missing or mismatched PTR is the single most common cause of receiver-side rejection.
  5. Check sender-side IP reputation. Even with correct MX and PTR, a sending IP with a bad reputation (recently used by spammers, listed on Spamhaus or other RBLs) will be rejected at the SMTP level. The DMARC Analyzer Blacklist Checker queries the major RBLs directly.
  6. Inspect the receiver-side bounce message. A clean bounce with a 5xx code and a descriptive reason (e.g. "550 5.7.1 SPF check failed", "550 5.7.26 DMARC alignment failed") tells you exactly what the receiver objected to. Use the Email Header Analyzer to parse the Authentication-Results header for the full receiver-side verdict.
  7. Compare against the DMARC RUA aggregate-report stream. The DMARC aggregate reports are the authoritative source for what receivers are observing across all your domain's mail flow. A drop in reported message volume from a specific receiver often indicates a delivery-rejection pattern that is otherwise invisible.

13. FAQ — common questions about MX records

What is an MX record?
An MX (Mail Exchanger) record is a DNS resource record type that maps a domain name to a list of mail-server hostnames willing to accept mail for that domain. Defined in RFC 1035 section 3.3.9 and used by SMTP per RFC 5321 section 5.1. Without an MX record (or a fallback A/AAAA per the implicit MX rule), no mail can be delivered to the domain.
How does MX priority work?
MX priority (technically "preference") is a 16-bit unsigned integer. LOWER values mean HIGHER priority — an MX with preference 10 is tried before one with preference 20. Among MX records sharing the same preference, RFC 5321 mandates random selection. Conventional spacing (10 / 20 / 30) leaves room to insert new records without renumbering.
What is a backup MX and why are they often misconfigured?
A backup MX is a secondary mail-exchanger for fallback when the primary is unreachable. The pattern was operationally useful in the 1990s but is now frequently a liability: spammers detect the backup and send all their spam there, bypassing the primary anti-spam filtering. Modern best practice: either configure the backup with IDENTICAL anti-spam policies as the primary, or do not publish a backup at all.
Does my MX record affect SPF or DMARC?
No, not directly. SPF and DMARC apply to OUTBOUND mail (authenticating the sending server); MX applies to INBOUND mail (telling senders where to deliver). The two operate on opposite sides of the SMTP transaction. The one indirect connection is the SPF "mx" mechanism, which authorises the IPs of your MX records to send on your behalf — useful only when inbound and outbound share IPs.
What is a null MX record?
A null MX (RFC 7505) is a special MX record that explicitly tells senders the domain does NOT accept mail. The syntax is a single MX with preference 0 and target "." (a literal dot — the DNS root name). Senders bounce immediately with permanent failure 550. Use for parked domains, marketing landing pages, and internal-only domains.
What TTL should I set for my MX records?
For stable production MX, use 3600 to 86400 seconds (1 hour to 24 hours). MX records change rarely and longer TTLs improve cache efficiency. Before a planned migration, lower the TTL to 300 to 3600 seconds two TTL cycles in advance, then raise back after the migration is stable.
Can an MX record point to a CNAME?
No. RFC 1034 section 3.6.2 and RFC 2181 section 10.3 prohibit pointing an MX at a CNAME alias. The MX target MUST resolve directly to an A or AAAA record. Violating this rule produces undefined behaviour across MTAs.
Why is my MX record not working — mail is bouncing?
Work the diagnostic funnel: confirm the MX record is published (dig +short MX), confirm the MX target resolves directly to A/AAAA (no CNAME), confirm SMTP connectivity on port 25, check reverse-DNS (PTR) on the IP, check IP reputation against RBLs, inspect the receiver-side bounce code, and compare against the DMARC aggregate-report stream. The most common actual cause is missing or mismatched PTR records.

15. Audit your MX configuration now

DMARC Analyzer's Domain Security Checker performs a live MX lookup against your domain (via includes/DnsChecker.php) and reports the published MX records with their preference values, target hostnames, resolved A/AAAA records, DNS TTLs, and matching PTR records on the resolved IPs. Use it to confirm your MX is correctly configured, that the target is not a CNAME, that reverse-DNS is in place, and that the TTL matches operational expectations. The Email Header Analyzer parses Received: chains from captured messages (via includes/EmailHeaderParser.php) so you can see exactly which MX target inbound mail traversed and whether the SMTP handshake completed over TLS — useful for diagnosing MTA-STS / DANE transport-security issues alongside basic MX correctness.

Audit my domain MX configuration Sign up — Free plan