如何检查smtp服务器是否正在使用php

如何检查smtp服务器是否正在使用php,php,ftp,smtp,Php,Ftp,Smtp,我想用php检查我的网站smtp是关闭还是打开。我尝试使用fsockopen连接到服务器上的端口25,然后在smtp服务运行时返回true。使用php脚本测试smtp或ftp是否运行的最佳方法。我将使用php邮件函数: 向另一个稳定的账户(可能是gmail?)发送电子邮件。脚本必须监视此帐户并验证是否收到了预期的消息。参考如下: 对于smtp,您可以通过以下方式使用: <?php $timeout = 30; // your own timeout value $connection_t

我想用php检查我的网站smtp是关闭还是打开。我尝试使用fsockopen连接到服务器上的端口25,然后在smtp服务运行时返回true。使用php脚本测试smtp或ftp是否运行的最佳方法。

我将使用php邮件函数:

向另一个稳定的账户(可能是gmail?)发送电子邮件。脚本必须监视此帐户并验证是否收到了预期的消息。参考如下:

对于smtp,您可以通过以下方式使用:

<?php
$timeout = 30; // your own timeout value
$connection_type = 'tcp'; // may be ssl, sslv2, sslv3 or tls
$host = 'myserver';
$port = 25;

$fp = stream_socket_client("{$connection_type}://{$host}:{$port}", $errno, $errstr, $timeout);

if (!$fp) {
    echo "$errstr ($errno)";
}

您正在谈论smtp服务器,因此必须启用pear框架。我有一个链接,可以提供帮助。
或者您可以这样做:

$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) ; 

我想检查服务器上运行的ftp和其他服务,所以哪种方法是最好的。我将使用相同的方法,以实际的方式测试服务器的每个组件,然后寻找成功的结果。PHP有许多ftp函数。