Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2013, 05:44
way2park
 
Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 15 años, 11 meses
Puntos: 4
verificar existencia de email en php

Hola genios, tengo este codigo que saque del php manual y estoy buscando la variable ( si es que esta ) con el resultado de la verificacion y mi ignoraciona no deja que la encuentre.

La idea es que si existe envio el email sino no envio nada.

Cuando ejecuto la pagina en el servidor no me dice ni mu.

Pliss helppp !!!!

De antemano muchas gracias!!!

Código PHP:
<?
$email
="[email protected]";
function 
validate_email($email){
   
$mailparts=explode("@",$email);
   
$hostname $mailparts[1];

   
// validate email address syntax
   
$exp "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
   
$b_valid_syntax=eregi($exp$email);

   
// get mx addresses by getmxrr
   
$b_mx_avail=getmxrr$hostname$mx_records$mx_weight );
   
$b_server_found=0;

   if(
$b_valid_syntax && $b_mx_avail){
     
// copy mx records and weight into array $mxs
     
$mxs=array();

     for(
$i=0;$i<count($mx_records);$i++){
       
$mxs[$mx_weight[$i]]=$mx_records[$i];
     }

     
// sort array mxs to get servers with highest prio
     
ksort ($mxsSORT_NUMERIC );
     
reset ($mxs);

     while (list (
$mx_weight$mx_host) = each ($mxs) ) {
       if(
$b_server_found == 0){

         
//try connection on port 25
         
$fp = @fsockopen($mx_host,25$errno$errstr2);
         if(
$fp){
           
$ms_resp="";
           
// say HELO to mailserver
           
$ms_resp.=send_command($fp"HELO microsoft.com");

           
// initialize sending mail
           
$ms_resp.=send_command($fp"MAIL FROM:<[email protected]>");

           
// try receipent address, will return 250 when ok..
           
$rcpt_text=send_command($fp"RCPT TO:<".$email.">");
           
$ms_resp.=$rcpt_text;
          
           if(
substr$rcpt_text03) == "250")
             
$b_server_found=1;

           
// quit mail server connection
           
$ms_resp.=send_command($fp"QUIT");

         
fclose($fp);

         }

       }
    }
  }
  return 
$b_server_found;
}

function 
send_command($fp$out){

  
fwrite($fp$out "\r\n");
  return 
get_data($fp);
}

function 
get_data($fp){
  
$s="";
  
stream_set_timeout($fp2);

  for(
$i=0;$i<2;$i++)
    
$s.=fgets($fp1024);

  return 
$s;
}

// support windows platforms
if (!function_exists ('getmxrr') ) {
  function 
getmxrr($hostname, &$mxhosts, &$mxweight) {
    if (!
is_array ($mxhosts) ) {
      
$mxhosts = array ();
    }

    if (!empty (
$hostname) ) {
      
$output "";
      @
exec ("nslookup.exe -type=MX $hostname."$output);
      
$imx=-1;

      foreach (
$output as $line) {
        
$imx++;
        
$parts "";
        if (
preg_match ("/^$hostname\tMX preference = ([0-9]+), mail exchanger = (.*)$/"$line$parts) ) {
          
$mxweight[$imx] = $parts[1];
          
$mxhosts[$imx] = $parts[2];
        }
      }
      return (
$imx!=-1);
    }
    return 
false;
  }
}

?>
Me olvide de aclarar. tengo linux en el servidor. Gracias !!!!