> 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