2010-09-09 64 views

回答

10

如果你想知道你是否可以從任何地方訪問SMTP服務器運行PHP,那麼你只需要連接到它在適當的端口(默認25),並看到如果你在結果中找回「220」代碼。

$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

它可能是由於你的SMTP端口是不允許的防火牆,以便嘗試這個PHP腳本來檢查開放的端口,它是具有最大熱門港口檢查:

<?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"; 
    } 
} 


?> 

來源自:https://www.interspire.com/support/kb/getattachment.php?data=MTA2OHxwb3J0Y2hlY2sucGhw