用fsockopen连接25端口,提示“由于目标机器积极拒绝,无法连接。(10061)”。百度N久,才发现是该死的McAfee,去掉访问保护里的防病毒标准保护=》禁止群发邮件蠕虫发送邮件前的阻止的勾去掉就好了。。
这个问题我两年前就遇到过,可惜忘记了,唉,杯具。
顺便贴一段判断smtp连接的代码吧
<? header('Content-Type:text/html;charset=utf-8'); function gethost($host) { $str = ""; $gethost = gethostbyname($host); echo "尝试连接 $host ...<br>"; if (!$gethost) { $str = "解析失败 (1)<HR>"; } elseif ($gethost == $host) { $str = "解析失败 (2): 可能是一个无效的主机名<HR>"; } else { echo "域名解析为 $gethost ...<br>"; openhost($host); } echo $str; } function openhost($host) { //连接主机 if (function_exists('fsockopen')) { $fp = fsockopen($host, 25, &$errno, &$errstr, 60); } elseif(function_exists('pfsockopen')) { echo "服务器不支持Fsockopen,尝试pFsockopen函数 ...<br>"; $fp = pfsockopen($host, 25, &$errno, &$errstr, 60); } else exit('服务器不支持Fsockopen函数'); if (!$fp) { echo "代号:$errno,<br>错误原因:$errstr<HR>"; } else { echo "SMTP服务器连接ok!<br>"; fwrite($fp, ""); $out0 = fgets($fp, 128); if (strncmp($out0, "220", 3) == 0) { // 判断三位字符内容 echo '220 SMTP服务端响应正常<HR>'; } else { echo '服务器端错误<HR>'; } } } $site = array("smtp.phpec.org"); foreach ($site as $value) { echo gethost($value); }
留下你的看法: