> I think mx record is required in official dns server, > although I feel the condition is too strict.
Keep in mind that a DNS *failure* is not the same thing as a particular DNS record not existing. If you ask whether there is an MX record for foo, and get a timeout, you can't assume there is not an MX record for foo and "fall back" on the A query. Misconfigured DNS servers with some frequency will return SERVFAIL ("I am misconfigured or broken") to an MX query while happily answering A queries. The right thing is to request the administrator of that domain to return an MX record to the MX query or to return zero records. Dave Eckhardt