Having outgoing e-mail rejected due to domain name system configuration issues is a common problem that Internet e-mail server administrators face. There are eight things you can check to make sure that you re DNS is configured for optimum delivery. I will be covering a different item in each day of this series.
Does the domain name in your e-mail sender address resolve?
After your outgoing e-mail server introduces itself to the recipient e-mail server, it starts its first message by first specifying the sender's e-mail address with the "MAIL" command for the simple mail transport protocol, also known as SMTP.
MAIL FROM: <firstname.lastname@example.org>
If the e-mail address contains a domain name, the domain name must be a valid fully-qualified domain name. Which means that it must either have domain name service "MX" records or resolve to an "A" record. Domain name service, also known as DNS is the system that resolves mnemonic names to their numeric Internet addresses.
The most common cause for this not to resolve is for the misconfiguration of the e-mail software used by the person sending the e-mail message, also known as the e-mail client. Sometimes the problem is also on the sending e-mail server. Typos are often mistakenly entered, or someone simply enters their e-mail address as "bob" instead of "email@example.com". Although "bob" may be a valid local name for e-mail, the sending e-mail server may add it's own hostname to the e-mail address so that it reads "firstname.lastname@example.org" where "internal.smtp.example.com" is just your e-mail server's internal name and shouldn't be used as a fully-qualified domain name when sending e-mail out to the Internet.
You can check whether the domain in your e-mail address has DNS MX records by using the dig command on UNIX/Linux. Below is an example using the example domain name of of "example.com".
dig example.com MX
If you have working MX records, you ll get a result similar to the following.
example.com. 600 IN MX 0 smtp.example.com.
If you don t have MX records, you usually won't get back an "answer".
To do this query on Windows, you can use the "nslookup" command from a command prompt window:
nslookup -query=MX example.com
If your domain doesn't have MX records, it must then have an A record.
You can check whether your e-mail server s domain name resolves to an A record by using the host command on UNIX/Linux. Below is an example using the example domain name of "example.com".
If you have a working A record, you ll get a result similar to the following.
example.com has address 126.96.36.199
If you don t have an A record, you ll get back a result similar to the following:
Host example.com not found: 3(NXDOMAIN)
To do this search on Windows, you can use the nslookup command from a command prompt window:
If you have a working A record, you ll get back a result similar to the following:
If you don t have a working A record, you ll get back a result like this:
*** UnKnown can't find example.com: Non-existent domain
Section 3.6 of RFC 2821 which is on the standards track to obsolete STD 10 requires that only resolvable, fully-qualified, domain names are permitted when domains are used in SMTP. The same RFC indicates that you can use an IP address instead of a domain name, or that you can leave the domain name off for a local name.
Many recipient e-mail servers will reject your e-mail for policy reasons if you don't use a domain name in the in the MAIL command that has MX records or an A record, and will often cite an RFC 2821 violation. Often times, this can cause delays if the recipient's DNS resolver is temporarily unable to verify the domain name, or if the sender's domain name service is temporarily not accepting queries.
You may need to make some changes in DNS, on your e-mail client, or even change your e-mail server's name in order to meet this requirement.
Other articles in this series: