我想使用 php 检查我的网站 smtp 是关闭还是打开。我尝试使用 fsockopen 连接到服务器上的 25 端口,然后在 smtp 服务运行时返回 true。哪个是测试是否使用 php 脚本运行 smtp 或 ftp 的最佳方法。
问问题
11178 次
3 回答
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) ;
于 2013-04-23T12:35:32.273 回答
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,我不确定。
这肯定不是最好的解决方案,但如果它可能有帮助......
于 2013-04-23T12:34:34.247 回答
0
我会使用 PHP 邮件功能:
http://php.net/manual/en/function.mail.php
将电子邮件实际发送到另一个稳定的帐户(可能是 gmail?)。该脚本必须监视此帐户并验证是否收到了预期的消息。供参考阅读:
于 2013-04-23T12:27:58.353 回答