I don't quite understand what's wrong with your hosts file, it should look like this:
Obviously you should have a correct IP & FQDN for your server in that file.
127.0.0.1 localhost.localdomain localhost
192.168.0.100 mailhost.xyz.com mailhost
I still suspect that your DNS is not set-up correctly. Do the following commands return the correct info?
Is your DNS hosted on your LAN or on a public DNS server?