2010-09-09 4 views

Répondre

10

Si vous voulez savoir si vous pouvez accéder au serveur SMTP à partir de n'importe où vous exécutez PHP, il vous suffit de vous connecter sur le port approprié (par défaut 25) et voir si vous obtenez un code "220" dans le résultat.

$f = fsockopen('smtp host', 25) ; 
if ($f !== false) { 
    $res = fread($f, 1024) ; 
    if (strlen($res) > 0 && strpos($res, '220') === 0) { 
     echo "Success!" ; 
    } 
    else { 
     echo "Error: " . $res ; 
    } 
} 
fclose($f) ; 
0

Puisque ceci est très probablement lié à votre autre question: Configure mail server to work with PHP, je vais mettre la réponse ici aussi:

Vous utilisez le package PEAR Mail. La méthode send() renvoie TRUE en cas de succès, ou un objet PEAR_Error sinon, qui contiendra les détails de l'échec. Très probablement vous voudriez $ PEAR_Error :: message. Tous les détails ici: Configure mail server to work with PHP

0

il pourrait être dû à votre port SMTP ne sont pas autorisés sur le pare-feu alors essayez ce script php pour vérifier les ports ouverts, il est avoir le contrôle du port populaire maximale:

<?php 

$ports[] = array('host'=>'interspire.smtp.com','number'=>25); 
$ports[] = array('host'=>'interspire.smtp.com','number'=>2525); 
$ports[] = array('host'=>'interspire.smtp.com','number'=>25025); 
$ports[] = array('host'=>'helpme.interspire.smtp.com','number'=>80); 

$ports[] = array('host'=>'google.com','number'=>80); 
$ports[] = array('host'=>'smtp.gmail.com','number'=>587); 
$ports[] = array('host'=>'smtp.gmail.com','number'=>465); 
$ports[] = array('host'=>'pop.gmail.com','number'=>995); 
$ports[] = array('host'=>'imap.gmail.com','number'=>993); 

$ports[] = array('host'=>'ftp.mozilla.org','number'=>21); 
$ports[] = array('host'=>'smtp2go.com','number'=>8025); 

$ports[] = array('host'=>'relay.dnsexit.com','number'=>25); 
$ports[] = array('host'=>'relay.dnsexit.com','number'=>26); 
$ports[] = array('host'=>'relay.dnsexit.com','number'=>940); 
$ports[] = array('host'=>'relay.dnsexit.com','number'=>8001); 
$ports[] = array('host'=>'relay.dnsexit.com','number'=>2525); 
$ports[] = array('host'=>'relay.dnsexit.com','number'=>80); 

$ports[] = array('host'=>'mail.authsmtp.com','number'=>23); 
$ports[] = array('host'=>'mail.authsmtp.com','number'=>25); 
$ports[] = array('host'=>'mail.authsmtp.com','number'=>26); 
$ports[] = array('host'=>'mail.authsmtp.com','number'=>2525); 

foreach ($ports as $port) 
{ 
    //$connection = @fsockopen($port['host'], $port['number']); 
    $connection = @fsockopen($port['host'], $port['number'], $errno, $errstr, 5); // 5 second timeout for each port. 

    if (is_resource($connection)) 
    { 
     echo '<h2>' . $port['host'] . ':' . $port['number'] . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.</h2>' . "\n"; 

     fclose($connection); 
    } 

    else 
    { 
     echo '<h2>' . $port['host'] . ':' . $port['number'] . ' is not responding.</h2>' . "\n"; 
    } 
} 


?> 

Source De: https://www.interspire.com/support/kb/getattachment.php?data=MTA2OHxwb3J0Y2hlY2sucGhw

Questions connexes