I tried using getmxrr() to validate the domain portion of email addresses in enquiry submission forms, and there is a curious effect with some top-level domains when checking non-existant domains.
With sdlkfjsdl.com, since the domain does not exist, getmxrr() returns false, as expected, and the returned mxhosts array is empty.
But with sdlkfjsdl.gov, getmxrr() returns true, and the returned mxhosts array contains one element: NULL
With sdlkfjsdl.org, getmxrr() returns true, and the returned mxhosts array contains one element: '0.0.0.0'
With sdlkfjsdl.co.uk, getmxrr() returns true and supplies one MX record: uk-net-wildcard-null-mx.centralnic.net
So to validate the email domain, it would seem one has to check the returned mxhosts array to exclude the possibility of mxhosts being returned as NULL, 0.0.0.0 and wildcard ...