Skip to content
Nigel Metheringham edited this page Nov 29, 2012 · 2 revisions

Q0318

Question

Exim won't route to a host with no MX record.

Answer

More than one thing may cause this.

  1. Are you sure there really is no MX record? Sometimes a typo results malformed MX record in the zone file, in which case some name ers give a SERVFAIL error rather than NXDOMAIN. Exim has to treat as a temporary error, so it can't go on to look for address records. can check for this state using one of the DNS interrogation commands, as nslookup, host, or dig.

  2. Is there a wildcard MX record for your domain? Is the search_parents option on in your dnslookup router? If the answer to these questions is "yes", that is the cause of the problem. When DNS resolver fails to find the MX record, it tries adding on your in if search_parents is true, and thereby finds your wildcard MX rd. For example:

  3. There is a wildcard MX record for *.a.b.c.

  4. There is a host called x.y.z that has an A record and no MX record.

  5. Somebody on the host m.a.b.c domain tries to mail to [user@x.y.z](mailto:user@x.y.z).

  6. Exim calls the DNS to look for an MX record for x.y.z.

  7. The DNS doesn't find any MX record. Because search_parents is true, it then tries searching the current host's parent domain, so it looks for x.y.z.a.b.c and picks up the wildcard MX record.

Setting search_parents false makes this case work while retaining the wildcard MX record. However, anybody on the host m.a.b.c who mails to [user@n.a](mailto:user@n.a) (expecting it to go to [user@n.a.b.c](mailto:user@n.a.b.c)) now has a problem. The widen_domains option of the dnslookup router may be helpful in this circumstance.


Clone this wiki locally