如何检查smtp服务器工作与否使用PHP

时间:2013-04-23 12:24:16

标签: php ftp smtp

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

3 个答案:

答案 0 :(得分:2)

您正在谈论smtp服务器,因此您必须启用pear框架。我有一个链接http://www.authsmtp.com/php-pear-mail/可以提供帮助。 或者你可以这样做:

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

答案 1 :(得分:0)

我会使用PHP邮件功能:

http://php.net/manual/en/function.mail.php

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

accessing my gmail inbox via php code

答案 2 :(得分:0)

对于smtp,您可以这样使用stream_socket_client()

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

但对于FTP,我不确定。

这肯定不是最好的解决方案,但如果它有帮助......