Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    chiamata ad una funzione

    Salve a tutti,
    ho trovato uno script che verifica l'esistenza di un indirizzo email, ma copio e incollo il codice nella mia pagina e chiamo la funzione, ma non funziona nulla.
    il codice si trova su questa pagina:
    http://www.barattalo.it/2009/12/27/v...ail-with-smtp/

    la funzione la chiamo con una semplice chiamata del tipo:

    validateEmailSmtp(miamail@mail.it)

    ma mi appare la pagina bianca.

    dove sbaglio?
    grazie, ciao.

  2. #2
    Prova a mettere

    Codice PHP:
    validateEmailSmtp("miamail@mail.it"

  3. #3
    Grazie per la risposta.
    niente ugulamente, appare la pagina bianca

  4. #4
    Posta il codice...oppure all'inizio della pagina metti un

    Codice PHP:
    error_reporting(E_ALL); 
    E vedi che errore ti da


  5. #5
    thnx!
    ho provato e mi da il seguente erore
    Undefined index: SERVER_ADMIN linea 20
    - if (!$probe_address) $probe_address = $_SERVER["SERVER_ADMIN"];

  6. #6
    Questo è soltanto un'avvertenza.

    Posta il codice della funzione

    validateEmailSmtp();

    Possibilmente tra tag [ PHP] [ /PHP] (senza spazi ovviamente )

  7. #7
    Codice PHP:
    error_reporting(E_ALL);

    validateEmailSmtp("miamail@mail.it");
    function 
    validateEmailSmtp($email$probe_address=""$debug=false) {
        
    # --------------------------------
        # function to validate email address
        # through a smtp connection with the
        # mail server.
        # by Giulio Pons
        # [url]http://www.barattalo.it[/url]
        # --------------------------------
        
    $output "";
        
    # --------------------------------
        # Check syntax with regular expression
        # --------------------------------
        
    if (!$probe_address$probe_address $_SERVER["SERVER_ADMIN"];
        if (
    preg_match('/^([a-zA-Z0-9\._\+-]+)\@((\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,7}|[0-9]{1,3})(\]?))$/'$email$matches)) {
            
    $user $matches[1];
            
    $domain $matches[2];
            
    # --------------------------------
            # Check availability of DNS MX records
            # --------------------------------
            
    if (function_exists('checkdnsrr')) {
                
    # --------------------------------
                # Construct array of available mailservers
                # --------------------------------
                
    if(getmxrr($domain$mxhosts$mxweight)) {
                    for(
    $i=0;$i<count($mxhosts);$i++){
                        
    $mxs[$mxhosts[$i]] = $mxweight[$i];
                    }
                    
    asort($mxs);
                    
    $mailers array_keys($mxs);
                } elseif(
    checkdnsrr($domain'A')) {
                    
    $mailers[0] = gethostbyname($domain);
                } else {
                    
    $mailers=array();
                }
                
    $total count($mailers);
                
    # --------------------------------
                # Query each mailserver
                # --------------------------------
                
    if($total 0) {
                    
    # --------------------------------
                    # Check if mailers accept mail
                    # --------------------------------
                    
    for($n=0$n $total$n++) {
                        
    # --------------------------------
                        # Check if socket can be opened
                        # --------------------------------
                        
    if($debug) { $output .= "Checking server $mailers[$n]...\n";}
                        
    $connect_timeout 2;
                        
    $errno 0;
                        
    $errstr 0;
                        
    # --------------------------------
                        # controllo probe address
                        # --------------------------------
                        
    if (preg_match('/^([a-zA-Z0-9\._\+-]+)\@((\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,7}|[0-9]{1,3})(\]?))$/'$probe_address,$fakematches)) {
                            
    $probe_domain str_replace("@","",strstr($probe_address'@'));

                            
    # --------------------------------
                            # Try to open up socket
                            # --------------------------------
                            
    if($sock = @fsockopen($mailers[$n], 25$errno $errstr$connect_timeout)) {
                                
    $response fgets($sock);
                                if(
    $debug) {$output .= "Opening up socket to $mailers[$n]... Success!\n";}
                                
    stream_set_timeout($sock5);
                                
    $meta stream_get_meta_data($sock);
                                if(
    $debug) { $output .= "$mailers[$n] replied: $response\n";}
                                
    # --------------------------------
                                # Be sure to set this correctly!
                                # --------------------------------
                                
    $cmds = array(
                                    
    "HELO $probe_domain",
                                    
    "MAIL FROM: <$probe_address>",
                                    
    "RCPT TO: <$email>",
                                    
    "QUIT",
                                );
                                
    # --------------------------------
                                # Hard error on connect -> break out
                                # --------------------------------
                                
    if(!$meta['timed_out'] && !preg_match('/^2\d\d[ -]/'$response)) {
                                    
    $codice trim(substr(trim($response),0,3));
                                    if (
    $codice=="421") {
                                        
    //421 #4.4.5 Too many connections to this host.
                                        
    $error $response;
                                        break;
                                    } else {
                                        if(
    $response=="" || $codice=="") {
                                            
    //c'è stato un errore ma la situazione è poco chiara
                                            
    $codice "0";
                                        }
                                        
    $error "Error: $mailers[$n] said: $response\n";
                                        break;
                                    }
                                    break;
                                }
                                foreach(
    $cmds as $cmd) {
                                    
    $before microtime(true);
                                    
    fputs($sock"$cmd\r\n");
                                    
    $response fgets($sock4096);
                                    
    $t 1000*(microtime(true)-$before);
                                    if(
    $debug) {$output .= "$cmd\n$response"(" sprintf('%.2f'$t) . " ms)\n";}
                                    if(!
    $meta['timed_out'] && preg_match('/^5\d\d[ -]/'$response)) {
                                        
    $codice trim(substr(trim($response),0,3));
                                        if (
    $codice<>"552") {
                                            
    $error "Unverified address: $mailers[$n] said: $response";
                                            break 
    2;
                                        } else {
                                            
    $error $response;
                                            break 
    2;
                                        }
                                        
    # --------------------------------
                                        // il 554 e il 552 sono quota
                                        // 554 Recipient address rejected: mailbox overquota
                                        // 552 RCPT TO: Mailbox disk quota exceeded
                                        # --------------------------------
                                    
    }
                                }
                                
    fclose($sock);
                                if(
    $debug) { $output .= "Succesful communication with $mailers[$n], no hard errors, assuming OK\n";}
                                break;
                            } elseif(
    $n == $total-1) {
                                
    $error "None of the mailservers listed for $domain could be contacted";
                                
    $codice "0";
                            }
                        } else {
                            
    $error "Il probe_address non è una mail valida.";
                        }
                    }
                } elseif(
    $total <= 0) {
                    
    $error "No usable DNS records found for domain '$domain'";
                }
            }
        } else {
            
    $error 'Address syntax not correct';
        }
        if(
    $debug) {
            print 
    nl2br(htmlentities($output));
        }
        if(!isset(
    $codice)) {$codice="n.a.";}
        if(isset(
    $error)) return array($error,$codice); else return true;

    grazie per la tua disponibilità

  8. #8
    Cacchio, alla faccia della funzioncina

    Prova a mettere degli echo qua e la' per capire se entra o no nei vari if in modo da vedere dove si ferma!

  9. #9
    Originariamente inviato da Samleo
    Cacchio, alla faccia della funzioncina
    ehehe, non l'ho fatta io magari arriverei a tanto!!!!
    cmq ho messo un'echo "attivato" e mi esce la pagina bianca con la scritta "attivato", in teoria la funzione funziona, è molto strano.
    L'ho provata sia su iis che su apache.

    grazie di nuovo!

  10. #10
    devi mettere gli echo o meglio i die("scrivi qualcosa") appena dopo un if per vedere se entra al suo interno o no.
    Se lo metti all'inizio della funzione fai poco o niente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.