<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      關(guān)于php發(fā)郵件

      之前嘗試了一些,利用php自帶的mail()函數(shù),

      在本地主機上測試時總是提示錯誤,Warning: mail() [function.mail]: SMTP server response: 553 You are not authorized to send mail

      貌似是因為沒有設(shè)置密碼的關(guān)系,但我真知道在哪里設(shè)置了,后來在網(wǎng)上搜了下,發(fā)現(xiàn)一個現(xiàn)成的類,用起來還是挺方便的

      Class.smtp.php
      <?php
      // #########################################
      $smtpserver     = "localhost"; //SMTP服務(wù)器
      $smtpserverport = 25; //SMTP服務(wù)器端口
      $smtpusermail   = "postmaster@test.com"; //SMTP服務(wù)器的用戶郵箱
      $smtpuser       = "postmaster@test.com"; //SMTP服務(wù)器的用戶帳號
      $smtppass       = "password"; //SMTP服務(wù)器的用戶密碼
      
      // bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])
      
      if (!function_exists('mail')) {
      
          $smtp = new smtp($smtpserver, $smtpserverport, false, $smtpuser, $smtppass);
          //這里面的一個true是表示使用身份驗證,否則不使用身份驗證.
          $smtp->debug = false;
          //是否顯示發(fā)送的調(diào)試信息
      
          function mail($to, $subject, $message, $headers)
          {
              global $smtp;
      
              $smtpemailto = $to;
              if (preg_match('/From:(.+?)\\n/sim', $headers, $regs)) {
                  $smtpusermail = $regs[0];
              } else {
                  $smtpusermail = $headers;
              }
              $mailsubject = $subject;
              $mailbody = $message;
              return $smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $maibody, $mailtype);
          }
      }
      
      
      
      class smtp {
          /* Public Variables */
      
          var $smtp_port;
      
          var $time_out;
      
          var $host_name;
      
          var $log_file;
      
          var $relay_host;
      
          var $debug;
      
          var $auth;
      
          var $user;
      
          var $pass;
      
          /* Private Variables */
          var $sock;
      
          /* Constractor */
      
          function smtp($relay_host = "", $smtp_port = 25, $auth = false, $user, $pass)
          {
              $this->debug = false;
      
              $this->smtp_port = $smtp_port;
      
              $this->relay_host = $relay_host;
      
              $this->time_out = 30; //is used in fsockopen()
      
              $this->auth = $auth; //auth
      
              $this->user = $user;
      
              $this->pass = $pass;
      
              $this->host_name = "localhost"; //is used in HELO command
              $this->log_file = "";
      
              $this->sock = false;
          }
      
          /* Main Function */
      
          function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "")
          {
              $mail_from = $this->get_address($this->strip_comment($from));
      
              $body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
      
              $header .= "MIME-Version:1.0\r\n";
      
              if ($mailtype == "HTML") {
                  $header .= "Content-Type:text/html\r\n";
              }
      
              $header .= "To: " . $to . "\r\n";
      
              if ($cc != "") {
                  $header .= "Cc: " . $cc . "\r\n";
              }
      
              $header .= "From: $from<" . $from . ">\r\n";
      
              $header .= "Subject: " . $subject . "\r\n";
      
              $header .= $additional_headers;
      
              $header .= "Date: " . date("r") . "\r\n";
      
              $header .= "X-Mailer:By Redhat (PHP/" . phpversion() . ")\r\n";
      
              list($msec, $sec) = explode(" ", microtime());
      
              $header .= "Message-ID: <" . date("YmdHis", $sec) . "." . ($msec * 1000000) . "." . $mail_from . ">\r\n";
      
              $TO = explode(",", $this->strip_comment($to));
      
              if ($cc != "") {
                  $TO = array_merge($TO, explode(",", $this->strip_comment($cc)));
              }
      
              if ($bcc != "") {
                  $TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));
              }
      
              $sent = true;
      
              foreach ($TO as $rcpt_to) {
                  $rcpt_to = $this->get_address($rcpt_to);
      
                  if (!$this->smtp_sockopen($rcpt_to)) {
                      $this->log_write("Error: Cannot send email to " . $rcpt_to . "\n");
      
                      $sent = false;
      
                      continue;
                  }
      
                  if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) {
                      $this->log_write("E-mail has been sent to <" . $rcpt_to . ">\n");
                  } else {
                      $this->log_write("Error: Cannot send email to <" . $rcpt_to . ">\n");
      
                      $sent = false;
                  }
      
                  fclose($this->sock);
      
                  $this->log_write("Disconnected from remote host\n");
              }
      
              return $sent;
          }
      
          /* Private Functions */
      
          function smtp_send($helo, $from, $to, $header, $body = "")
          {
              if (!$this->smtp_putcmd("HELO", $helo)) {
                  return $this->smtp_error("sending HELO command");
              }
              // auth
              if ($this->auth) {
                  if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) {
                      return $this->smtp_error("sending HELO command");
                  }
      
                  if (!$this->smtp_putcmd("", base64_encode($this->pass))) {
                      return $this->smtp_error("sending HELO command");
                  }
              }
      
              if (!$this->smtp_putcmd("MAIL", "FROM:<" . $from . ">")) {
                  return $this->smtp_error("sending MAIL FROM command");
              }
      
              if (!$this->smtp_putcmd("RCPT", "TO:<" . $to . ">")) {
                  return $this->smtp_error("sending RCPT TO command");
              }
      
              if (!$this->smtp_putcmd("DATA")) {
                  return $this->smtp_error("sending DATA command");
              }
      
              if (!$this->smtp_message($header, $body)) {
                  return $this->smtp_error("sending message");
              }
      
              if (!$this->smtp_eom()) {
                  return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");
              }
      
              if (!$this->smtp_putcmd("QUIT")) {
                  return $this->smtp_error("sending QUIT command");
              }
      
              return true;
          }
      
          function smtp_sockopen($address)
          {
              if ($this->relay_host == "") {
                  return $this->smtp_sockopen_mx($address);
              } else {
                  return $this->smtp_sockopen_relay();
              }
          }
      
          function smtp_sockopen_relay()
          {
              $this->log_write("Trying to " . $this->relay_host . ":" . $this->smtp_port . "\n");
      
              $this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
      
              if (!($this->sock && $this->smtp_ok())) {
                  $this->log_write("Error: Cannot connenct to relay host " . $this->relay_host . "\n");
      
                  $this->log_write("Error: " . $errstr . " (" . $errno . ")\n");
      
                  return false;
              }
      
              $this->log_write("Connected to relay host " . $this->relay_host . "\n");
      
              return true;;
          }
      
          function smtp_sockopen_mx($address)
          {
              $domain = ereg_replace("^.+@([^@]+)$", "\1", $address);
      
              if (!@getmxrr($domain, $MXHOSTS)) {
                  $this->log_write("Error: Cannot resolve MX \"" . $domain . "\"\n");
      
                  return false;
              }
      
              foreach ($MXHOSTS as $host) {
                  $this->log_write("Trying to " . $host . ":" . $this->smtp_port . "\n");
      
                  $this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
      
                  if (!($this->sock && $this->smtp_ok())) {
                      $this->log_write("Warning: Cannot connect to mx host " . $host . "\n");
      
                      $this->log_write("Error: " . $errstr . " (" . $errno . ")\n");
      
                      continue;
                  }
      
                  $this->log_write("Connected to mx host " . $host . "\n");
      
                  return true;
              }
      
              $this->log_write("Error: Cannot connect to any mx hosts (" . implode(", ", $MXHOSTS) . ")\n");
      
              return false;
          }
      
          function smtp_message($header, $body)
          {
              fputs($this->sock, $header . "\r\n" . $body);
      
              $this->smtp_debug("> " . str_replace("\r\n", "\n" . "> ", $header . "\n> " . $body . "\n> "));
      
              return true;
          }
      
          function smtp_eom()
          {
              fputs($this->sock, "\r\n.\r\n");
      
              $this->smtp_debug(". [EOM]\n");
      
              return $this->smtp_ok();
          }
      
          function smtp_ok()
          {
              $response = str_replace("\r\n", "", fgets($this->sock, 512));
      
              $this->smtp_debug($response . "\n");
      
              if (!ereg("^[23]", $response)) {
                  fputs($this->sock, "QUIT\r\n");
      
                  fgets($this->sock, 512);
      
                  $this->log_write("Error: Remote host returned \"" . $response . "\"\n");
      
                  return false;
              }
      
              return true;
          }
      
          function smtp_putcmd($cmd, $arg = "")
          {
              if ($arg != "") {
                  if ($cmd == "") $cmd = $arg;
      
                  else $cmd = $cmd . " " . $arg;
              }
      
              fputs($this->sock, $cmd . "\r\n");
      
              $this->smtp_debug("> " . $cmd . "\n");
      
              return $this->smtp_ok();
          }
      
          function smtp_error($string)
          {
              $this->log_write("Error: Error occurred while " . $string . ".\n");
      
              return false;
          }
      
          function log_write($message)
          {
              $this->smtp_debug($message);
      
              if ($this->log_file == "") {
                  return true;
              }
      
              $message = date("M d H:i:s ") . get_current_user() . "[" . getmypid() . "]: " . $message;
      
              if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) {
                  $this->smtp_debug("Warning: Cannot open log file \"" . $this->log_file . "\"\n");
      
                  return false;;
              }
      
              flock($fp, LOCK_EX);
      
              fputs($fp, $message);
      
              fclose($fp);
      
              return true;
          }
      
          function strip_comment($address)
          {
              $comment = "\([^()]*\)";
      
              while (ereg($comment, $address)) {
                  $address = ereg_replace($comment, "", $address);
              }
      
              return $address;
          }
      
          function get_address($address)
          {
              $address = ereg_replace("([ \t\r\n])+", "", $address);
      
              $address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
      
              return $address;
          }
      
          function smtp_debug($message)
          {
              if ($this->debug) {
                  echo $message . "
      ;";
              }
          }
      }
      ?>

      用法如下

      View Code
      $smtp = new smtp("service", port, true, "email", "password"); //這里面的一個true是表示使用身份驗證,否則不使用身份驗證.
      //$smtp->debug = true; //是否顯示發(fā)送的調(diào)試信息
      $emailtype = "HTML"; //信件類型,文本:text;網(wǎng)頁:HTML
      $smtp->sendmail($to, $sendfrom, $subject, $message, $emailtype);

      不過用這個類會出現(xiàn)幾個方法過時的警報,抽時間完善一下去。

      posted @ 2012-06-21 23:19  偽coder  閱讀(235)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产在线精品欧美日韩电影 | 性做久久久久久久久| 亚洲一级特黄大片一级特黄| 亚洲国模精品一区二区| 欧美国产日韩久久mv| 国产揄拍国产精品| 国内视频偷拍久久伊人网| 国产三级精品片| 成人啪啪高潮不断观看| 黑人大战欲求不满人妻| 国产精品熟女一区二区不卡 | 九九热在线精品视频免费| 人妻日韩精品中文字幕| 无码人妻丰满熟妇啪啪网不卡| 日韩精品18禁一区二区| 免费看婬乱a欧美大片| 免费国产拍久久受拍久久| 凤山县| 在国产线视频A在线视频| 国产超高清麻豆精品传媒麻豆精品 | 亚洲av日韩av中文高清性色| 国产盗摄视频一区二区三区| 在线中文字幕国产精品| 久久精品国产亚洲精品色婷婷| 国内精品国产三级国产a久久| 国产欧美日韩亚洲一区二区三区 | 一个色综合国产色综合| 国产成人精品午夜2022| 国产在线午夜不卡精品影院| 欧美粗大猛烈老熟妇| 久热伊人精品国产中文| 久久91精品牛牛| 粉嫩jk制服美女啪啪| 成人午夜免费无码视频在线观看| 免费观看日本污污ww网站| 亚洲国产中文在线有精品| 日韩有码国产精品一区| 亚洲国产精品毛片在线看| а∨天堂一区中文字幕| 国产乱子伦农村xxxx| 久久国产乱子精品免费女|