不用装库
这是秋衫客写的,很好用,看看吧function send_mail($host,$port,$username,$password,$from,$from_name,$to,$to_name,$subject,$data,$html=0){////////邮件Socket发送函数定义 $fp=@fsockopen($host,$port)or die("无法连接到远程主机!");
$temp=fgets($fp,512);
//连接远程服务器
//向服务器打招呼
fputs($fp,"HELO $username\n");
$temp=fgets($fp,512);

//ESTMP验证
fputs($fp,"AUTH LOGIN\n");
$temp=ltrim(fgets($fp,512));

fputs($fp,base64_encode($username)."\n");
$temp=ltrim(fgets($fp,512)); fputs($fp,base64_encode($password) ."\n");
$temp=ltrim(fgets($fp,512));

if(substr($temp,0,3)!="235")
{
$result.="<center><font color=red>密码不对!</font></center><br>";
$err=1;
}
if($err!=1)
{
fputs($fp,"mail from:$from\n");
$temp=ltrim(fgets($fp,512));

fputs($fp,"rcpt to:$to\n");
$temp=ltrim(fgets($fp,512));

fputs($fp,"data\n");
$temp=ltrim(fgets($fp,512));
fputs($fp,"To:" .$to ."\n");
fputs($fp,"From:$from_name<" .$from .">\n");
fputs($fp,"Subject:" .$subject ."\n");
if($html==1)
{
fputs($fp,"Content-type:text/html\n");
}
fputs($fp,"$data\n");
fputs($fp,".\n");
$temp=ltrim(fgets($fp,512));
if(substr($temp,0,3)!="250")
{
$result.="<center>由于不可知原因,邮件没有发送成功。</center><br>";
}
else
{
$result.="<center><font color=red>发送成功!</font></center><br>";
}
fputs($fp,"quit\n");
$temp=ltrim(fgets($fp,512));
}
print $result;
global $PHP_SELF;
print "<center><br><a href=$PHP_SELF><b>发送新信件</b></a><br>";
fclose($fp);
}

解决方案 »

  1.   

    不是啊,我运行到fsockopen函数就已经错误啦。我在其他的机器上运行是没有问题的。但是移到现在的机器上就有问题了。难道是PHP的设置问题?
      

  2.   

    对了,下面是出错信息,大家帮忙看看
    Warning: fsockopen() [function.fsockopen]: php_hostconnect: connect failed in e:\work\email\test1.php on line 181Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.21cn.net:25 in e:\work\email\test1.php on line 181
    set socket blockingWarning: socket_set_blocking(): supplied argument is not a valid stream resource in e:\work\email\test1.php on line 185Warning: fgets(): supplied argument is not a valid stream resource in e:\work\email\test1.php on line 187
    get request message
    发送失败
      

  3.   

    connect failed in e:\work\email\test1.php on line 181
    没有找到文件嘛 ^_^
      

  4.   

    fsockopen($host,$port)
    你的这个$host,$port应该不对,你换换看看
      

  5.   

    try "smtp.21cn.com" , not "smtp.21cn.net"