2010-02-24 3 views

Répondre

2

Utilisez Net_SMTP pour établir une connexion au serveur. Ce ne sera pas parfait, mais si vous ne pouvez pas vous connecter, c'est probablement en panne.

+1

J'enverrais un HELO puis un QUITTE aussi :) – gnud

+0

@gnud: Hah. Oui, en effet, j'aurais dû le mentionner. –

0

la plupart des serveurs de messagerie sont sur le port 25. Un exemple en utilisant les sockets

$address = gethostbyname('www.somewhere.com'); 
$service_port="25"; 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
if ($socket === false) { 
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; 
} else { 
    echo "OK.\n"; 
} 
echo "Attempting to connect to '$address' on port '$service_port'..."; 
$result = socket_connect($socket, $address, $service_port); 
if ($result === false) { 
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n"; 
} else { 
    echo "OK.\n"; 
} 

Voir la PHP docs pour plus.

0
function checkSMTPService($hostname, $port) 
{ 
    // Create a socket. If we fail to create a socket return false 
    // This is really more to check that we are able to create a socket 
    // than if we are able to check the server 
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
    if($socket === false) return false; 

    // Now we will connect to the server. If we fail we return false. 
    $result = socket_connect($socket, $hostname, $port); 
    if($result === false) return false; 

    return true; 

} 
Questions connexes