Newsgroup: it.comp.www.php
Titolo: Verifica Email

Ciao!
Ciao setec!
Qualche giorno fa hai postato gentilmente un esempio di come uno script php
può verificare l'esistenza di un email, io l'ho provato ed ho cercato di
capire come funziona, ho fatto diversi tentativi ma il massimo risultato è
stato quello di ottenere una pagina bianca priva di errori.
Ho provato ad inserire lo script in una pagina unica così:
<?php
define ('DEBUG_OK', false);
Class CSmtp
{
var $timeout = 10;
function checkmail ($email = "")
{
$host = substr (strstr ($email, '@'), 1, 255) . ".";
if (getmxrr ($host, $mxhosts[0],  $mxhosts[1]) == true)
{ array_multisort ($mxhosts[1],  $mxhosts[0]); }
else
{
$mxhosts[0] = $host;
$mxhosts[1] = 10;
}
if (DEBUG_OK) { print_r ($mxhosts); }
$port = 25;
$error = '';
$localhost = '
tin.it
';
$sender = 'info@' . $localhost;
$result = false;
$id = 0;
while (!$result && $id < count($mxhosts[0]))
{
if (function_exists ("fsockopen"))
{
if (DEBUG_OK) { print_r ($id . " " . $mxhosts[0][$id]); }
if ($connection = fsockopen ($mxhosts[0][$id], $port, $errno,
$error, $this->timeout))
{
fputs ($connection,"HELO $localhost\r\n"); // 250
$data = fgets ($connection,1024);
$response = substr ($data,0,1);
if (DEBUG_OK) { print_r ($data); }
if ($response == '2') // 200, 250 etc.
{
fputs ($connection,"MAIL FROM:<$sender>\r\n");
$data = fgets($connection,1024);
$response = substr ($data,0,1);
if (DEBUG_OK) { print_r ($data); }
if ($response == '2') // 200, 250 etc.
{
fputs ($connection,"RCPT TO:<$email>\r\n");
$data = fgets($connection,1024);
$response = substr ($data,0,1);
if (DEBUG_OK) { print_r ($data); }
if ($response == '2') // 200, 250 etc.
{
fputs ($connection,"data\r\n");
$data = fgets($connection,1024);
$response = substr ($data,0,1);
if (DEBUG_OK) { print_r ($data); }
if ($response == '2') // 200, 250 etc.
{ $result = true; }
}
}
}
fclose ($connection);
if ($result) { return true; }
}
}
$id++;
}
return false;
}
}
$email="
une...@acaso.it
";
function checkmail($address)
{
$smtp = new CSmtp();
if ($smtp->checkmail($email))
{ return "Ok"; }
else
{ return "Ko"; }
}
?>
Ed ho provato anche a fare due pagine una nominata lib che contiene la Class
CSmtp e l'altra con il tuo esempio:
<?php
include("verificaemail.lib");
$email="
une...@acaso.it
";
function checkmail($address)
{
$smtp = new CSmtp();
if ($smtp->checkmail($email))
{ return "Ok"; }
else
{ return "Ko"; }
}
?>
Dove baglio?
CR
\\ Setec is my God //

 bla bla bla...
Ho fatto ancora qualche prova ed ho scoperto quello che non andava grazie a
questo errore.
Warning: getmxrr() is not supported in this PHP build
Intanto cerco se esiste un alternativa a getmxrr();
Bye
CR

"Country Road" ha scritto

Da quale versione php è supportato il comando getmxrr?
Io ho installato la 4.1.2 su apache e windows
Ho provato ad usare checkdnsrr al posto di getmxrr ma la mia versione non
supporta nemmeno quello
Ciao
CR
Riposto lo script come l'ho messo nella pagina verificaemail.php









function checkmail($address)
{
$smtp = new CSmtp();
if ($smtp->checkmail($address))
{ return "Ok"; }
else
{ return "Ko"; }
}
$address="
une...@acaso.it
";
checkmail($address) ;
?>

 Dove baglio?
AAAARRRRGGGGGHHHHH!!!!
Ti posso consigliare di comprati un buon libro o segui un buon corso,
scaricati il manuale e leggerti le FAQ?
Come pensi che possa funzionare se non chiami la funzione checkmail da
nessuna parte?
-- 
I'am what I'am, I do what I can

 > questo errore.
DAL MANUALE:
getmxrr
This function is not implemented on Windows platforms


 -- 
L'ho inserita, la funzione in pratica la mia versione non supporta
getmxrr().
Sto cercando un alternativa a quel comando e di capire da quale versione php
supporta getmxrr().
Thnks
\\ Setec is ever my God // anche se mi consiglia di comprarmi un buon libro
:-)

"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:7CfCb.180008$vO5.7...@twister1.libero.it...

E' supportato solo da Linux.... Beddda matre....
CR

 bla bla bla
Trovata la soluzione per farlo funzionare anche con winzozz
http://www.phpclasses.org/browse.html/package/13.html
Ciao
CR

 Stamattina consigli a tutti di comprarsi un buon libro...... :-)
Prendera' una percentuale??? ;-)

 Prendera' una percentuale??? ;-)
ROTFL.



Ah ah, io ad uno o cento come Setec gliela *elargirei* volentieri.
Sono qui da poco ma parecchi problemi li ho risolti grazie a lui.
Stavolta però nemmeno la classe che emula getmxrr()
http://www.phpclasses.org/browse.html/package/13.html
 funge a dovere.
Ciao
CR