凉风有信,秋月无边。
亏我思娇的情绪好比度日如年。

PHP实现表单提交发送邮件_php发邮件源码

只需要三个文件就可以了:

注意:

文件自命名需修改表单提交url,包含的类文件名:

HTML表单文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title>PHP利用smtp类发送邮件范例</title> </head> <body> <form action="sendmail.php" method="post"> <p>收件人:<input type="text" name="toemail" /></p> <p>标  题:<input type="text" name="title" /></p> <p>内  容:<textarea name="content" cols="50" rows="5"></textarea></p> <p><input type="submit" value="发送" /></p> </form> </body> </html>

表单提交的PHP文件:

<meta charset="utf-8">  <?php  /**  * 1. 检查邮箱设置是否启用了smtp服务;  * 2. 是否是php环境的问题导致;  * 3. 将26行的$smtp->debug = false改为true,可以显示错误信息,然后可以复制报错信息到网上搜一下错误的原因  */     require_once "email.class.php";      //******************** 配置信息 ********************************      $smtpserver = "smtp.163.com";                         //SMTP服务器     $smtpserverport =25;                                 //SMTP服务器端口     $smtpusermail = "xxx@163.com";                //开通smtp服务的邮箱号码     $smtpemailto = $_POST['toemail'];                    //发送给谁      $smtpuser = "xxx@163.com";                    //开通smtp服务的邮箱号码     $smtppass = "xxx";                        //SMTP服务器的秘钥      $mailtitle = $_POST['title'];                        //邮件主题      $mailcontent = "<h1>".$_POST['content']."</h1>";    //邮件内容      $mailtype = "HTML";                                    //邮件格式(HTML/TXT),TXT为文本邮件      //************************ 配置信息 ****************************                $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);     //这里面的一个true是表示使用身份验证,否则不使用身份验证.      $smtp->debug = false;//是否显示发送的调试信息      $state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);      echo "<div style='width:300px; margin:36px auto;'>";      if($state==""){      echo "对不起,邮件发送失败!请检查邮箱填写是否有误。";      echo "<a href="demo.html">点此返回</a>";      exit();      }     echo "恭喜!邮件发送成功!!";      echo "<a href="demo.html">点此返回</a>";      echo "</div>";  ?>

类文件:

<?php      class Smtp      {          var $smtp_port;          var $time_out;          var $host_name;          var $log_file;          var $relay_host;          var $debug;          var $auth;          var $user;          var $pass;          var $sock;                   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 = 3600;              $this->auth = $auth;              $this->user = $user;              $this->pass = $pass;              $this->host_name = "localhost";              $this->log_file = "";              $this->sock = FALSE;          }          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;          }                   function smtp_send($helo, $from, $to, $header, $body = "")          {              if (!$this->smtp_putcmd("HELO", $helo))                  {                  return $this->smtp_error("sending HELO command");              }              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;              }          }      }  ?>
赞(0) 打赏
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的内容,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。本博客资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。如果本文导致的版权问题以及内容纠错问题请联系站长QQ:1004619 | 点此给我发送邮件
本文标题:《PHP实现表单提交发送邮件_php发邮件源码》
本文地址:https://www.1004619.com/biji/php-shi-xian-biao-dan-ti-jiao-fa-song-you-jian-php-fa-you-jian-yuan-ma/

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏