一个简单的功能,PHP程序是澳大利亚朋友写的,现在他有事,用户购物车里,有一个E-mail咨询点击咨询,用户可以发送他要咨询的问题,和他购物车里的产品图片信息一起发到我的邮箱里,希望有人能帮忙。要不我连工作都没有了

解决方案 »

  1.   

    工作都快没了,还只能这么点分数?可以用通过mail()或Socket发邮件也可以用网络上现成的类发送
      

  2.   

    建议用现成的类。。用mail函数要配置麻烦..
      

  3.   

    建议要socket
    <?php
    set_time_limit(120);//配置该页最久执行时间。默认值是 30 秒,在 php.ini 中的
                        //max_execution_time 变量配置,若配置为 0 则不限定最久时间。
    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;
      /*
      *使用 base64进行编码。设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。 
      *Base64-encoded 数据要比原始数据多占用 33% 左右的空间。 
      */
      $this->user   = base64_encode($user);
      $this->pass   = base64_encode($pass);
      $this->debug  = $debug;
      /*
      *创建并返回一个socket资源,也被称为一个通信端点。 client, and another performing the role of the *一个典型的网络连接是由2插座,一个执行的客户端的角色,而另一个执行服务器的角色。
      * 域: AF_INET .基于IPv4的互联网协议。
      * 类型:SOCK_STREAM  提供测序,可靠,全双工,基于连接的字节流.一个彻头彻尾的带外数据传输机制可能得到支持。TCP协议是基于此套接字类型。
      * 协议:SOL_TCP
      */
      $this->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);  //需在php.ini中打开extension=php_sockets.dll
      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>\r\n";
      }
     }
     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;       //_yyy修改部分代码
      $All          = "From:<".$this->from.">\r\n";
      $All          .= "To:<".$this->to.">\r\n";
      $All          .= "Subject:".$this->subject."\r\n\r\n";
      $All          .= $this->body;
      /*
      如过把$All的内容再加处理,就可以实现发送MIME邮件了
      不过还需要加很多程序
      */
      //以下是和服务器会话
      $this->in       =  "EHLO HELO\r\n";
      $this->docommand();  $this->in       =  "AUTH LOGIN\r\n";
      $this->docommand();  $this->in       =  $this->user."\r\n";
      $this->docommand();  $this->in       =  $this->pass."\r\n";
      $this->docommand(); // $this->in       =  "MAIL FROM:".$this->from."\r\n";
      $this->in       =  "MAIL FROM:<".$this->from.">\r\n";  
      $this->docommand(); // $this->in       =  "RCPT TO:".$this->to."\r\n";
      $this->in       =  "RCPT TO:<".$this->to.">\r\n";     
      $this->docommand();  $this->in       =  "DATA\r\n";
      $this->docommand();     $this->in       =  $All."\r\n.\r\n";
      $this->docommand();  $this->in       =  "QUIT\r\n";
      $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=new smtp_mail("smtp.163.com","25","","",true);
    //如果你需要显示会话信息,请将上面的修改成
    //$smtp  =   new smtp_mail("smtp.163.com","25","你的163.com的帐号","你的密码",true);
    $smtp->send("",$trimmed['email'],"注册","http://www.google.com.hk/");
    //$smtp->send("发件人","收件人","标题","内容");
    ?>