Skip to content

Missing MX Records

Email delivery failure due to missing mail exchange configuration

Warning Security Issue
Email Delivery
DNS Configuration

Email Delivery Disruption

Your domain lacks MX records, preventing all email delivery. Mail servers cannot determine where to deliver emails for your domain, causing complete email service failure and business communication disruption.

Understanding MX Records

MX (Mail Exchange) records are DNS records that specify which mail servers are responsible for receiving email on behalf of your domain. When someone sends an email to your domain, their mail server queries your DNS for MX records to determine where to deliver the message. Without MX records, email delivery becomes impossible.

Business Impact: Missing MX records cause complete email delivery failure, resulting in lost business correspondence, customer communication breakdowns, and potential revenue loss from missed opportunities.

How Email Delivery Works

The absence of MX records creates immediate operational problems including complete email delivery failure, sender bounce notifications, business communication disruption, and potential loss of important correspondence. Modern email systems rely entirely on MX records for proper message routing.

Email Delivery Process

When someone sends an email to your domain, their email server performs an MX record lookup to determine where to deliver the message. The server selects the mail server with the lowest priority number (highest priority) and attempts delivery. Without MX records, this process fails immediately.

  • Step 1: Sender's email server queries DNS for MX records
  • Step 2: Server sorts MX records by priority (lower numbers = higher priority)
  • Step 3: Server attempts delivery to highest priority mail server
  • Step 4: If primary fails, server tries backup servers in priority order

MX Record Implementation

Configure MX records to restore email delivery functionality for your domain.

Understanding MX Record Structure

Before diving into configuration, let's understand what each part of an MX record actually does. Think of an MX record as a forwarding address that tells the postal service (other email servers) where to deliver mail for your domain.

MX Record Components Breakdown

Every MX record contains five essential pieces of information that work together to route email correctly:

yourdomain.com.    3600    IN    MX    10    mail.yourdomain.com.
     ↓             ↓       ↓     ↓     ↓              ↓
   Domain         TTL    Class Type Priority    Mail Server
   Name          (seconds)                     (Hostname)

Domain Name: The domain that will receive email (must end with a dot in zone files). This tells DNS which domain this rule applies to.

TTL (Time To Live): How long other servers should remember this information before checking again. Use 300 seconds (5 minutes) when testing, then increase to 3600 seconds (1 hour) or higher for production.

Class: Always "IN" for Internet. This is a historical DNS requirement you don't need to worry about changing.

Type: Always "MX" for mail exchange records. This tells DNS what kind of record this is.

Priority: A number that determines the order email servers try different mail servers. Lower numbers mean higher priority (tried first).

Mail Server: The actual hostname of the server that will handle incoming email for this domain.

How Priority Numbers Actually Work

Priority numbers determine which mail server gets tried first when email arrives. Here's how email servers make decisions based on these numbers:

# Example with multiple mail servers
yourdomain.com.    3600   IN    MX    10    primary-mail.yourdomain.com.    
yourdomain.com.    3600   IN    MX    20    backup-mail.yourdomain.com.     
yourdomain.com.    3600   IN    MX    30    emergency-mail.yourdomain.com.  

Email delivery order:
1st attempt → priority 10 (primary-mail.yourdomain.com)
2nd attempt → priority 20 (backup-mail.yourdomain.com) - only if primary fails
3rd attempt → priority 30 (emergency-mail.yourdomain.com) - only if backup fails

When an email arrives, the sending server looks at all your MX records, sorts them by priority number (lowest first), and tries to deliver to the server with priority 10. If that server is down or unreachable, it moves to priority 20, and so on. This system ensures your email keeps working even if your main mail server has problems.

Step-by-Step MX Record Configuration

Here's how to set up MX records properly, starting with the simplest configuration and building up to more robust setups:

Step 1: Single Mail Server (Basic Setup)

If you have just one mail server, start with this simple configuration:

# Single mail server configuration
yourdomain.com.    300    IN    MX    10    mail.yourdomain.com.
# Use TTL 300 (5 minutes) while testing, priority 10 is standard for single servers

Priority 10 is a common choice for single servers. You could use any number, but 10 leaves room to add higher-priority servers later if needed.

Step 2: Adding Backup Mail Servers (Recommended)

Multiple mail servers prevent email loss if your primary server goes down:

# Multiple mail servers with priority ordering
yourdomain.com.    3600   IN    MX    10    mail1.yourdomain.com.    # Primary server
yourdomain.com.    3600   IN    MX    20    mail2.yourdomain.com.    # Backup server
yourdomain.com.    3600   IN    MX    30    mail3.yourdomain.com.    # Emergency backup
# TTL increased to 3600 (1 hour) for production use

Leave gaps between priority numbers (10, 20, 30) so you can insert additional servers later without renumbering everything.

Step 3: Load Distribution (Advanced)

For high-volume domains, you can balance email load across multiple servers using the same priority:

# Load balancing with equal priority
yourdomain.com.    3600   IN    MX    10    mail1.yourdomain.com.    # Gets ~50% of email
yourdomain.com.    3600   IN    MX    10    mail2.yourdomain.com.    # Gets ~50% of email
yourdomain.com.    3600   IN    MX    20    backup.yourdomain.com.   # Backup if both fail

When multiple servers have the same priority, sending servers randomly choose between them, distributing the email load.

Popular Email Provider Configurations

If you use a hosted email service, they'll provide specific MX records. Here are examples from major providers:

Google Workspace (formerly G Suite)

Google uses a multi-tier backup system with one primary server and multiple backup servers at different priority levels for high availability.

# Google Workspace (formerly G Suite)
yourdomain.com.    3600   IN    MX    1     aspmx.l.google.com.         # Primary
yourdomain.com.    3600   IN    MX    5     alt1.aspmx.l.google.com.    # Backup 1
yourdomain.com.    3600   IN    MX    5     alt2.aspmx.l.google.com.    # Backup 2  
yourdomain.com.    3600   IN    MX    10    alt3.aspmx.l.google.com.    # Backup 3
yourdomain.com.    3600   IN    MX    10    alt4.aspmx.l.google.com.    # Backup 4

Google's strategy: Priority 1 handles most email, while priorities 5 and 10 create multiple backup tiers. This ensures email delivery even if multiple servers are unavailable.

Microsoft 365 (Office 365)

Microsoft uses the highest possible priority (0) and requires domain names with dots replaced by dashes in their mail server hostname.

# Microsoft 365 (Office 365)
yourdomain.com.    3600   IN    MX    0     yourdomain-com.mail.protection.outlook.com.

Microsoft's approach: Priority 0 (highest possible priority) ensures all email goes to Microsoft's servers first. The hostname format replaces periods with dashes ("yourdomain.com" becomes "yourdomain-com").

Verification Commands

Verify MX record configuration and test email delivery using these systematic verification steps:

Basic MX Record Checking

Start with these fundamental commands to check if your MX records exist and are properly configured.

# Check current MX records
dig yourdomain.com MX
nslookup -type=MX yourdomain.com

What to expect: These commands should return your MX records with priority numbers and mail server hostnames. If nothing appears, your MX records are missing or not yet propagated.

DNS Server Specific Checking

Test your MX records from different public DNS servers to ensure global accessibility and proper propagation.

# Check from specific DNS servers
dig @8.8.8.8 yourdomain.com MX
dig @1.1.1.1 yourdomain.com MX

Cross-verification: Google (8.8.8.8) and Cloudflare (1.1.1.1) should return identical MX records. Differences indicate propagation issues or DNS inconsistencies.

Mail Server Connectivity Testing

Verify that your mail servers are actually reachable and accepting connections on the standard SMTP port 25.

# Test mail server connectivity
telnet mail.yourdomain.com 25
# If successful, you'll see: 220 mail.yourdomain.com ESMTP

Connection testing: A successful connection shows "220" response with server name and "ESMTP" indicating Extended SMTP support. Connection refused or timeout means server issues.

Email Delivery Testing

Send actual test emails to verify end-to-end email delivery functionality works correctly.

# Test email delivery (Linux/macOS)
echo "Test message" | mail -s "Test Subject" user@yourdomain.com

Live testing: This sends a real test email through your domain's mail system. Check both successful delivery and any bounce messages for configuration issues.

Global DNS Propagation Checking

Verify that your MX records have propagated globally across different geographic DNS servers.

# Check DNS propagation globally
nslookup -type=MX yourdomain.com 8.8.8.8
nslookup -type=MX yourdomain.com 208.67.222.222

Global verification: Test against Google (8.8.8.8) and OpenDNS (208.67.222.222) servers from different regions. Consistent results confirm worldwide MX record propagation.

Last updated: August 2, 2025