好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

socket 发送邮件 - php类库

socket 发送邮件

//原代码如下:   set_time_limit(120);   class  smtp_mail   {   var   $host ;  //主机    var   $port ;  //端口 一般为25    var   $user ;  //smtp认证的帐号    var   $pass ;  //认证密码    var   $debug  = false;  //是否显示和服务器会话信息?    var   $conn ;   var   $result_str ;  //结果    var   $in ;  //客户机发送的命令    var   $from ;  //源信箱    var   $to ;  //目标信箱    var   $subject ;  //主题    var   $body ;  //内容    function  smtp_mail( $host , $port , $user , $pass , $debug =false)   {   $this ->host =  $host ;   $this ->port =  $port ;   $this ->user =  base64_encode ( $user );   $this ->pass =  base64_encode ( $pass );   $this ->debug =  $debug ;   $this ->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);  //具体用法请参考手册    if ( $this ->socket)   {   $this ->result_str =  "创建socket:" .socket_strerror(socket_last_error());   $this ->debug_show( $this ->result_str);   }   else    {   exit ( "初始化失败,请检查您的网络连接和参数" );   }   $this ->conn = socket_connect( $this ->socket, $this ->host, $this ->port);   if ( $this ->conn)   {   $this ->result_str =  "创建socket连接:" .socket_strerror(socket_last_error());   $this ->debug_show( $this ->result_str);   }   else    {   exit ( "初始化失败,请检查您的网络连接和参数" );   }   $this ->result_str =  "服务器应答:<font color=#cc0000>" .socket_read ( $this ->socket, 1024). "</font>" ;   $this ->debug_show( $this ->result_str);     }   function  debug_show( $str )   {   if ( $this ->debug)   {   echo   $str . "<p>rn" ;   }   }   function  send( $from , $to , $subject , $body )   {   if ( $from  ==  ""  ||  $to  ==  "" )   {   exit ( "请输入信箱地址" );   }   if ( $subject  ==  "" )  $sebject  =  "无标题" ;   if ( $body  ==  "" )  $body  =  "无内容" ;   $this ->from =  $from ;   $this ->to =  $to ;   $this ->subject =  $subject ;   $this ->body =  $body ;   $all  =  "from:" . $this ->from. "n" ;   $all  .=  "to:" . $this ->to. "n" ;   $all  .=  "subject:" . $this ->subject. "n" ;   $all  .=  $this ->body;   /*    如过把$all的内容再加处理,就可以实现发送mime邮件了    不过还需要加很多程序    */      //以下是和服务器会话    $this ->in =  "ehlo helorn" ;   $this ->docommand();   $this ->in =  "auth loginrn" ;   $this ->docommand();   $this ->in =  $this ->user. "rn" ;   $this ->docommand();   $this ->in =  $this ->pass. "rn" ;   $this ->docommand();   $this ->in =  "mail from:" . $this ->from. "rn" ;   $this ->docommand();   $this ->in =  "rcpt to:" . $this ->to. "rn" ;   $this ->docommand();   $this ->in =  "datarn" ;   $this ->docommand();   $this ->in =  $all . "rn.rn" ;   $this ->docommand();   $this ->in =  "quitrn" ;   $this ->docommand();   //结束,关闭连接      }   function  docommand()   {   socket_write ( $this ->socket,  $this ->in,  strlen  ( $this ->in));   $this ->debug_show( "客户机命令:" . $this ->in);   $this ->result_str =  "服务器应答:<font color=#cc0000>" .socket_read ( $this ->socket, 1024). "</font>" ;   $this ->debug_show( $this ->result_str);   }   }   //这个是我做的测试,我用的是smtp.163.com,那你的信箱也必须是163.com的,要不人家不让你发!!    //你用这个类的时候你修改成你自己的信箱就可以了    $smtp  =  new  smtp_mail( "smtp.163.com" , "25" , "t_design" , "000000" ,true);   //如果你需要显示会话信息,请将上面的修改成    //$smtp = new smtp_mail("smtp.163.com","25","你的163.com的帐号","你的密码",true);    $smtp ->send( "t_design@163.com" , "t_beijing@yahoo.com.cn" , "你好" , "你好" );   ?> 

查看更多关于socket 发送邮件 - php类库的详细内容...

  阅读:47次