well, the email format isn't too hard with the right regular expression function:
if (eregi("^[a-z][a-z_0-9\.]+@[a-z_0-9\.]+\.[a-z]{2,3}$", $_POST['email'])) //email is in proper format...
//as for the domain check, you can use the following sockets code and parse the content it returns to determine a valid domain.
$domain_to_check="somedomain.com";
$sock=fsockopen("whois.arin.net", 43, $errno, $errstr, 30);
if(fputs ($sock, "$domain_to_check\r\n")) {
while (!feof($sock)) {
$out .= fgets ($sock, 2048);
}
fclose($sock);
}
I heard a rumor about whois changes the other day (something like a whois query being a multilayered transaction) so the socket code may not work like it used to. Worth a try anyways.
P.S.
I suppose a more obvious approach might be to use gethostbyname()
I just mentioned the sockets method as
I don't remember how long it takes to timeout on a bougus domain with gethostbyname()