I look at the local_host_names, there is no entry of the host name that mx record point to.
For example, mx record point to mail.blahblah.com, then I forget to add mail.blahblah.com to the local_host_names. It works nicely now.
The reason I telnet localhost 25, sendmail response intantly, even though localhost is not exist in local_host_names. The reason is there is an entry "LOCAL_DOMAIN(`localhost.localdomain')dnl" in sendmail.mc .