麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
smtp验证函数发送邮件错误信息:错误信息501 input error. 66
悬赏分:20 - 2007年08月13日

smtp验证函数发送邮件错误信息:错误信息501 input error. 66

请各位帮忙解决这样的问题:一个有关smtp发送邮件的错误:错误信息501 input error.66
sendmail.php源文件是这样子的:
//sendmail.php-----start

<?

function sendmail($to,$subject, $message,$df_from,$mail_flag)
{



$smtp = "111.11.111.111"; //您的SMTP 服务器供应商,可以是域名或IP地址
$check = 1; //SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证,如不清楚请与你的smtp 服务商联系。


if ($check) {
$username = "mail@11.cn"; //您的email帐号名称
$password = "111"; //您的email密码
}

$s_from = "mail@11.cn"; //此email 必需是发信服务器上的email


//连接服务器
$fp = fsockopen ( $smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "联接服务器失败".__LINE__;
set_socket_blocking($fp, true );

$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "错误信息:".$lastmessage.__LINE__;

//HELO
$yourname = "mail";
if($check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";

fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "错误信息$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}


//身份验证
if ($check=="1") {
//验证开始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "错误信息$lastmessage".__LINE__;
//用户姓名
$lastact=base64_encode($username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "错误信息$lastmessage".__LINE__;
//用户密码
$lastact=base64_encode($password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "错误信息$lastmessage".__LINE__;
}

//FROM:
$lastact="MAIL FROM: $s_from" . "\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "错误信息$lastmessage".__LINE__;

//TO:
$lastact="RCPT TO: $to" . "\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "错误信息$lastmessage".__LINE__;

//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "错误信息$lastmessage".__LINE__;

if($mail_flag==1)
{
$head = "MIME-Version: 1.0\r\n";
$head .= "Content-type: text/html; charset=??????\r\n";
}
//处理Subject头
$head="Subject: $subject\r\n".$head;
$message = $head."\r\n".$message;


//处理From头
$head="From: $df_from\r\n";
$message = $head.$message;

//处理To头
$head="To: $to\r\n";
$message = $head.$message;


//加上结束串
$message .= "\r\n.\r\n";

//发送信息
fputs($fp, $message);
$lastact="QUIT\r\n";

fputs($fp,$lastace);
fclose($fp);
return 0;
}

?>

//sendeamil.php-----end

下面是一个引用上面:sendmail.php函数的一个发送邮件的简单例子:

//test.php---------start
<? include"config.php";
include"sendmail.php";

?>



无标题文档



<?

$to="zhang@163.com";
$subject="你好";
$message="最近怎么样?";
if($end=sendmail($to,$subject,$message,"li@163.com",0))
{echo $end;
echo "<script>alert('信件发送成功!')</script>";
} else
echo "<script>alert('信件发送失败!')</script>";
?>



//test.php----------end


当执行test.php时,会出现“错误信息501 input error.66”的提示。

这可能跟什么有关系呢,请各位指点错误了。是不是跟邮件服务器的配置有关?

提问者:wen8u8   08-13 20:08
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
47 + 10 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM