亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php實現在站點里面添加郵件發送的功能

2024-05-04 23:45:19
字體:
來源:轉載
供稿:網友
開發了一個簡單的空間管理系統,將所有的域名空間保存到數據庫里面進行管理,在用戶進行續費的時候就進行發送一個郵件來進行通知,然后我這邊進行續費操作,正好用到一個郵件發送的功能,那如何實現郵件發送的功能
 

下面夏日博客來講下如何在站點里面添加一個郵件發送的功能。
首先需要下載一個smtp 的 php 郵件發送類,代碼如下:

<?phpclass smtp {   /* Public Variables */  public $smtp_port;   public $time_out;   public $host_name;   public $log_file;   public $relay_host;   public $debug;   public $auth;   public $user;   public $pass;      /* Private Variables */  private $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 = preg_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");     }     echo "<br>";     //echo $header;     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 = preg_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 (!preg_match("/^[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 (preg_match($comment, $address)) {       $address = preg_replace($comment, "", $address);     }          return $address;   }    function get_address($address)   {     $address = preg_replace("/([ /t/r/n])+/", "", $address);     $address = preg_replace("/^.*<(.+)>.*$/", "//1", $address);          return $address;   }    function smtp_debug($message)   {     if ($this->debug) {       echo $message."<br>";     }   }  function get_attach_type($image_tag) { //    $filedata = array();      $img_file_con=fopen($image_tag,"r");   unset($image_data);   while ($tem_buffer=AddSlashes(fread($img_file_con,filesize($image_tag))))   $image_data.=$tem_buffer;   fclose($img_file_con);    $filedata['context'] = $image_data;   $filedata['filename']= basename($image_tag);   $extension=substr($image_tag,strrpos($image_tag,"."),strlen($image_tag)-strrpos($image_tag,"."));   switch($extension){     case ".gif":       $filedata['type'] = "image/gif";       break;     case ".gz":       $filedata['type'] = "application/x-gzip";       break;     case ".htm":       $filedata['type'] = "text/html";       break;     case ".html":       $filedata['type'] = "text/html";       break;     case ".jpg":       $filedata['type'] = "image/jpeg";       break;     case ".tar":       $filedata['type'] = "application/x-tar";       break;     case ".txt":       $filedata['type'] = "text/plain";       break;     case ".zip":       $filedata['type'] = "application/zip";       break;     default:       $filedata['type'] = "application/octet-stream";       break;   }   return $filedata;   }  } // end class ?>

這類的郵件發送類網上有許多,可以挑一款自己喜歡的就行,將以上的代碼保存為 ZC_Email.class.php 文件,然后在使用的時候直接 include_once("ZC_Email.class.php") 就可以了,代碼如下:

<?php include_once("ZC_Email.class.php");?>

這是將郵件的發送類已經嵌入到頁面中了,下一步就要在頁面進行內容的發送了,我這里的系統是用戶購買成功后進行發送,實例代碼如下:

//空間購買成功發送郵件    $smtpserver = "smtp.163.com";//SMTP服務器     $smtpserverport =25;//SMTP服務器端口     $smtpusermail = "xiariboke@163.com";//SMTP服務器的用戶郵箱     $smtpemailto = "xiariboke@qq.com";//發送給誰     $smtpuser = "xiariboke@163.com";//SMTP服務器的用戶帳號     $smtppass = "xiariboke";//SMTP服務器的用戶密碼     $mailsubject = "精品門業網香港空間購買";//郵件主題     $mailbody = "成功購買香港空間 $size M空間,購買域名為:$domain 購買時間為:".format_date(time(),2)." 到期時間為: $lasttime ".format_date(time(),5);//郵件內容     $mailtype = "TXT";//郵件格式(HTML/TXT),TXT為文本郵件     ##########################################     $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//這里面的一個true是表示使用身份驗證,否則不使用身份驗證.     $smtp->debug = false;//是否顯示發送的調試信息     $smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);     //郵件發送結束     showmsg('購買成功!','ZC_Link_List.php?sort=2');

其中 SMTP 服務器的用戶郵箱和密碼自己要設置好,這是發給指定的一個郵箱,當然可以自定義改成自己的,這里面的變量都是我站點內使用的,如果不需要可以自己稍微修改一下,這里不多講了。
希望本文所述對大家學習php程序設計有所幫助。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩欧美综合| 久久亚洲成人精品| 国产精品久久久久av免费| 午夜精品蜜臀一区二区三区免费| 91av在线免费观看视频| 国产精品爽爽爽| 亚洲精品日韩丝袜精品| 国产高清视频一区三区| 欧美极品欧美精品欧美视频| 亚洲精品福利视频| 精品国产一区二区三区久久| 亚洲精品视频网上网址在线观看| 视频一区视频二区国产精品| 日韩美女福利视频| 久久天天躁狠狠躁夜夜av| 日韩av免费在线观看| 日本老师69xxx| 91人成网站www| 97超碰国产精品女人人人爽| 成人精品视频99在线观看免费| 欧美成人手机在线| 精品亚洲一区二区三区| 亚洲美女性视频| 亚洲电影av在线| 91国产精品电影| 色综合久久中文字幕综合网小说| 久久视频这里只有精品| 成人欧美一区二区三区在线| 国产精品极品美女在线观看免费| 国产在线观看不卡| 国产激情视频一区| 欧美国产一区二区三区| 狠狠久久五月精品中文字幕| 51视频国产精品一区二区| 亚洲欧美激情一区| 97久久久免费福利网址| 久久最新资源网| 亚洲精品理论电影| 国产成人一区二区三区电影| 久久精视频免费在线久久完整在线看| 亚洲欧洲一区二区三区久久| 国产日韩在线观看av| 欧美日韩国产精品| 亚洲最大成人免费视频| 狠狠色狠色综合曰曰| 日韩精品一区二区三区第95| 69久久夜色精品国产7777| 亚洲欧美一区二区三区四区| 亚洲最大成人免费视频| 日本久久久久久久| 久久九九热免费视频| 欧美美最猛性xxxxxx| 国产色视频一区| 亚洲精品白浆高清久久久久久| 欧美成人午夜剧场免费观看| 日韩av在线免费观看一区| 欧美亚洲在线播放| 亚洲天堂男人天堂女人天堂| 日韩视频在线观看免费| 91sao在线观看国产| 成人欧美在线观看| 18一19gay欧美视频网站| 日韩免费在线视频| 91成人国产在线观看| 国产一区欧美二区三区| 亚洲福利小视频| 国产91热爆ts人妖在线| 国产专区欧美专区| 国产精品扒开腿做爽爽爽视频| 欧美激情视频一区二区三区不卡| 欧美大片免费看| 91亚洲精品视频| 国产欧美精品xxxx另类| 国产激情视频一区| 最近2019中文字幕mv免费看| 91大神福利视频在线| 精品二区三区线观看| 久久夜色撩人精品| 亚洲国产精品嫩草影院久久| 亚洲精品免费一区二区三区| 亚洲成人av片| 国产区亚洲区欧美区| 一本一本久久a久久精品综合小说| 久久精品91久久香蕉加勒比| 国产日韩欧美在线视频观看| 欧美激情第6页| 久久夜精品香蕉| 欧美壮男野外gaytube| 91国产在线精品| 亚洲综合自拍一区| 亚洲区中文字幕| 国产亚洲精品日韩| 亚洲女人天堂色在线7777| 久久中国妇女中文字幕| 伊人久久久久久久久久久久久| 亚洲男人天堂手机在线| 国产欧美一区二区三区视频| 亚洲福利视频专区| 久久久久久伊人| 最近2019中文字幕mv免费看| 日本精品免费观看| 日韩av理论片| 亚洲国产成人久久综合一区| 久久国产精品久久久| 国产欧美日韩综合精品| 国产精品综合不卡av| 精品欧美aⅴ在线网站| 中文字幕一区二区精品| 国产亚洲精品一区二区| 欧美华人在线视频| 一区二区三区久久精品| 另类色图亚洲色图| 亚洲精品国产电影| 91日韩在线视频| 一区二区三区无码高清视频| 91色琪琪电影亚洲精品久久| 亚洲国模精品一区| 日韩中文字幕免费看| 永久555www成人免费| 成人免费直播live| 日韩欧美国产成人| 懂色aⅴ精品一区二区三区蜜月| 欧美午夜xxx| 亚洲国产欧美一区| 97高清免费视频| 日韩精品免费在线观看| 亚洲国产精品视频在线观看| 欧美激情视频免费观看| 久久久久国产视频| 亚洲最大在线视频| 亚洲码在线观看| 精品中文字幕在线2019| 精品国产成人av| 国产精品网址在线| 成人免费淫片aa视频免费| 亚洲免费福利视频| 国产精品偷伦免费视频观看的| 91中文精品字幕在线视频| 国产精品久久久久久超碰| 成人精品在线视频| 26uuu久久噜噜噜噜| 91精品免费看| 奇米成人av国产一区二区三区| 亚洲国产91精品在线观看| 久久精品中文字幕一区| 午夜精品国产精品大乳美女| 国产亚洲欧美日韩精品| 亚洲欧洲av一区二区| 国产在线视频2019最新视频| 亚洲自拍偷拍区| 亚洲精品一区av在线播放| 久久精品国产一区二区三区| 亚洲小视频在线| 精品av在线播放| 久久这里只有精品视频首页| 色老头一区二区三区在线观看| 69精品小视频| 久久精品福利视频| 日韩av大片在线| 欧美韩日一区二区| 欧美有码在线观看| 亚洲国产婷婷香蕉久久久久久| 日韩中文理论片| 亚洲国产欧美日韩精品|