ich habe nun folgende Funktion gefunden:
PHP-Code:
function validateEmail($Email) {
global $HTTP_HOST;
if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $Email)) {
return 1;
}
list ( $Username, $Domain ) = split ("@",$Email);
if (checkdnsrr ( $Domain, "MX" )) {
if (getmxrr ($Domain, $MXrec)) {
$Mailserver = $MXrec[0];
} else {
return 2; // return system error NOT invalid address
}
} else {
$Mailserver = $Domain;
}
if ($Connection = fsockopen($Mailserver, 25)) {
if (ereg("^220", $Rubbish = fgets($Connection, 1024))) {
fputs ( $Connection, "HELO $HTTP_HOST\r\n" );
$Rubbish = fgets ( $Connection, 1024 );
fputs ( $Connection, "MAIL FROM: <{$Email}>\r\n" );
$Fromstring = fgets ( $Connection, 1024 );
fputs ( $Connection, "RCPT TO: <{$Email}>\r\n" );
$Tostring = fgets ( $Connection, 1024 );
fputs ( $Connection, "QUIT\r\n");
fclose($Connection);
if (ereg("^250", $Fromstring) && ereg("^250", $Tostring)) {
return 0; // return successful validation
} else {
return 1; // return invalid address
}
} else {
return 1; // return invalid address error
}
} else {
return 1;
}
}
$liste = array();
if($obj = mysql_query("SELECT id, email FROM emails ORDER BY id ASC LIMIT 1"))
{
while($row = mysql_fetch_assoc($obj))
{
array_push($liste,$row);
}
}
$email = $liste[0]['email'];
$valid = validateEmail($email);
verwende, erhalte ich bei $valid = 1. Schreibe ich es aber
$email = "ah@august-starke.de";
$valid = validateEmail($email);
erhalte ich als Ergebnis 0. Wieso eigentlich?
Gruss
Zocker
Einen Kommentar schreiben: