Email not arriving
When email goes missing, the first question is which direction is failing: email you receive, or email you send. The checks are different for each. Start with any bounce message you have, because it usually names the cause.
Read the bounce message
A bounce (also called a non-delivery report) is an automatic reply saying a message could not be delivered. Look for a three-digit code and the explanation next to it:
| Code starts with | Meaning | Example causes |
|---|---|---|
4 (for example 421, 451) | Temporary problem. The sending server will usually try again. | The receiving server is busy, or is slowing down mail from an unknown sender |
5 (for example 550, 554) | Permanent failure. The message will not be retried. | The address does not exist, the mailbox is full, or the message was rejected by a policy such as SPF or DMARC |
Many bounces also include an extended code such as 5.1.1 (the address does not exist) or 5.7.x (rejected for a security or policy reason). Search the text after the code: it often names the exact record that failed.
You are not receiving email
-
Check the spam or junk folder, and any filters or forwarding rules in your mailbox that could move or delete messages.
-
Check that the mailbox is not full. A full mailbox makes new messages bounce.
-
Check your MX records. They must point to your email provider's servers:
dig +short example.com MXOn Windows, use
nslookup -type=mx example.com. The answer should list exactly the servers your email provider gave you. If you recently moved your website or changed nameservers, the MX records may have been lost; recreate them. -
Check the domain is active. An expired domain stops receiving email.
-
Ask the sender for the bounce message, if they got one. It shows why your server refused the message.
Your email is not reaching others, or lands in spam
-
Read the bounce message you received. Codes starting
5.7usually point to authentication or reputation. -
Check SPF. There must be exactly one SPF record, and it must include every service that sends email for your domain:
dig +short TXT example.com -
Check DKIM is turned on with your email provider and its record is published at the selector they gave you.
-
Check DMARC. If your policy is
p=quarantineorp=reject, any service missing from SPF or DKIM will have its mail filtered or refused. -
Look at a delivered message's headers. Send a test to a mailbox at a large provider and open the original message. The
Authentication-Resultsline should showspf=pass,dkim=passanddmarc=pass. -
Check the content and the list. Messages sent to many people who did not ask for them, or that look like phishing, are filtered regardless of the records. Send only to people who expect your email, and make unsubscribing easy for newsletters.
SPF, DKIM and DMARC explained shows what each record should look like.
Email from your website's contact form goes missing
Websites often send form messages using the server's own mail function, with your domain in the "From" line. Receivers may treat that as unauthenticated mail. To fix it:
- Send the website's email through your real email account using authenticated SMTP, usually with a plugin or a setting in your site's software.
- Or add the website's sending service to your SPF record and enable its DKIM signing, if it offers it.
Messages to one company bounce or disappear
If only one recipient domain is affected, the problem is often on their side: a strict filter, a full mailbox or a block on your server's address. Send them the bounce text and ask their IT team to check their filtering logs. Make sure your own records pass first, so the conversation starts from solid ground.
For DomainPilot business email settings in Outlook, Apple Mail, Gmail or Thunderbird, see Set up business email on any device on the DomainPilot website.
Sources
- Enhanced mail status codes: RFC 3463