function ValidarMail($email) {
global $HTTP_HOST;
$resultado = array();
if (!eregi("^[_\.0-9a-z\-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$email)) {
$resultadoado[0]=false;
$resultado['code']="702";
return $resultado;
}
list ( $Username, $dominio ) = split ("@",$email);
if (getmxrr($dominio, $MXHost)) $conecta_dominio = $MXHost[0];
else $conecta_dominio = $dominio;
$conectar = fsockopen ( $conecta_dominio, 25 );
if ($conectar) {
if (ereg("^220", $ver = fgets($conectar, 1024))) {
fputs ($conectar, "HELO $HTTP_HOST\r\n");
$ver = fgets ( $conectar, 1024 );
fputs ($conectar, "MAIL FROM: <{$email}>\r\n");
$From = fgets ( $conectar, 1024 );
fputs ($conectar, "RCPT TO: <{$email}>\r\n");
$To = fgets ($conectar, 1024);
fputs ($conectar, "QUIT\r\n");
fclose($conectar);
if (!ereg ("^250", $From) || !ereg ( "^250", $To )) {
$resultado[0]=false;
$resultado['code']="700";
return $resultado;
}
}
else {
$resultado[0] = false;
$resultado['code'] = "Død";
return $resultado;
}
}
else {
$resultado[0]=false;
$resultado['code']="701";
return $resultado;
}
$resultado[0]=true;
$resultado['code']="200";
return $resultado;
}
$existe = ValidarMail($email);
if($existe[0]) {
//codigo para enviar el e-mail
}
unction microtime_float(){
list($useg, $seg) = explode(" ", microtime());
return ((float)$useg + (float)$seg);
}
$tiempo_inicio = microtime_float();
$dbhost = "localhost";
$dbuser = "user";
$dbpass = "pass";
$dbname = "database";
$conn = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die('Could not connect: ' . mysql_error());
$dbselect = mysql_select_db("$dbname") or die ('Could not select database');
$listado = mysql_query("SELECT `email` FROM `wp_subscribe2` WHERE `active`='3'");
$i = 0;
$limpiados = 0;
while($row = mysql_fetch_row($listado)){
set_time_limit(0);
echo $row[0]." ";
$resultado = ValidarMail($row[0]);
if($resultado[0]=="1"){
mysql_query("UPDATE `wp_subscribe2` SET `active` = '1' WHERE `email`='".$row[0]."'");
echo "ok
";
}
else {
echo "--
";
mysql_query("UPDATE `wp_subscribe2` SET `active` = '0' WHERE `email`='".$row[0]."'");
$limpiados++;
}
$i++;
if($i==100){
break;
}
}
$tiempo_fin = microtime_float();
$tiempo = $tiempo_fin - $tiempo_inicio;
echo "
Limpiados: ".$limpiados." correos de $i en " . round(($tiempo_fin - $tiempo_inicio)) ." segundos";
(no hace falta)
function getmxrr($hostname, &$mxhosts)
{
$mxhosts = array();
exec('nslookup -type=mx '.$hostname, $result_arr);
foreach($result_arr as $line)
{
if (preg_match("/.*mail exchanger = (.*)/", $line, $matches))
$mxhosts[] = $matches[1];
}
return( count($mxhosts) > 0 );
}
(crear tipo de campo mail, de forma que valide automaticamente)
Sección Head
Sección Body