$smtp[] = array("To: ".$to.$lb,"","");
//8.1、发送标题
$smtp[] = array("Subject: ".$subject.$lb,"","");
//8.3、发送其他Header内容
foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
//8.4、发送一个空行,结束Header发送
$smtp[] = array($lb,"","");
//8.5、发送信件主体
if($bdy)
{
foreach($bdy as $b)
{
$smtp[] = array(base64_encode($b.$lb).$lb,"","");
}
}
//9、发送“.”表示信件结束,期待返回250
$smtp[] = array(".".$lb,"250","DATA(end)error: ");
//10、发送Quit,退出,期待返回221
$smtp[] = array("QUIT".$lb,"221","QUIT error: ");
//打开smtp服务器端口
$fp = @fsockopen($smtp_host, 25);
if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
while($result = @fgets($fp, 1024))
{
if(substr($result,3,1) == " ") { break; }
}
$result_str="";
//发送smtp数组中的命令/数据
foreach($smtp as $req)
{
//发送信息
@fputs($fp, $req[0]);
//如果需要接收服务器返回信息,则
if($req[1])
{
//接收信息
while($result = @fgets($fp, 1024))
{
if(substr($result,3,1) == " ") { break; }
}
if (!strstr($req[1],substr($result,0,3)))
{
$result_str.=$req[2].$result."<br>";
}
}
}
//关闭连接
@fclose($fp);
if ($result_str==""){return "发送成功!!";}else {return $result_str;}
}







