send22的函数内容呢? 如果是mail函数的话,linux主机可以用

解决方案 »

  1.   

    //连接服务器 
      $fp = fsockopen ( $smtp, 25, $errno, $errstr, 60); 
      if (!$fp ) return "Connecting server fail".__LINE__;
      set_socket_blocking($fp, true ); 
      
      $lastmessage=fgets($fp,512);
      if ( substr($lastmessage,0,3) != 220 ) return "Error:".$lastmessage.__LINE__; 
      
      //HELO
      $yourname = "YOURNAME";
      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 "Error:".$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 "Error:".$lastmessage.__LINE__; 
        //用户姓名
        $lastact=base64_encode($username)."\r\n";
        fputs( $fp, $lastact);
        $lastmessage = fgets ($fp,512);
        if (substr($lastmessage,0,3) != 334) return "Error:".$lastmessage.__LINE__; 
        //用户密码
        $lastact=base64_encode($password)."\r\n";
        fputs( $fp, $lastact);
        $lastmessage = fgets ($fp,512);
        if (substr($lastmessage,0,3) != "235") return "Error:".$lastmessage.__LINE__; 
      }
      
      //FROM:
      $lastact="MAIL FROM: $s_from" . "\r\n"; 
      fputs( $fp, $lastact);
      $lastmessage = fgets ($fp,512);
      if (substr($lastmessage,0,3) != 250) return "Error:".$lastmessage.__LINE__; 
      
      //TO:
      $lastact="RCPT TO: $to" . "\r\n"; 
      fputs( $fp, $lastact);
      $lastmessage = fgets ($fp,512);
      if (substr($lastmessage,0,3) != 250) return "Error:".$lastmessage.__LINE__; 
       
      //DATA
      $lastact="DATA\r\n";
      fputs($fp, $lastact);
      $lastmessage = fgets ($fp,512);
      if (substr($lastmessage,0,3) != 354) return "Error:".$lastmessage.__LINE__; 
      
       
      //处理Subject头
      $head="Subject: $subject\r\n"; 
      $message = $head."\r\n".$message; 
       
     
      //处理From头 
      $head="From: $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;
    }
      

  2.   

    ; For Win32 only.
    ;sendmail_from = [email protected]; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
    ;sendmail_path =
    要怎么设置呢
    我看前面的函数没用到 sendmail 啊
      

  3.   

    上面是一个不用组件自动发送EMAIL的函数 ,我不知道为什么就运行不起来了
      

  4.   

    服务器是 Linux 而我本地是 WIN XP 的 是不是跟这有关啊
      

  5.   

    [mail function]
    ; For Win32 only.
    SMTP = smtp.xxx.com   ---这里写你可以用的smtp服务器
    smtp_port = 25    ---- smtp端口
      

  6.   

    你可以参照phpwind的sendmail.php文件里面提供了3种方法,1种依赖服务器环境,一种依赖邮件服务器(你必须先有一个可用的邮箱),一种则纯粹的依赖mx(邮件交换记录),后2者可以在任意平台上运行。