Php adds the email sending function to the site _ php instance

Source: Internet
Author: User
Tags learn php programming
A simple space management system is developed to store all domain name spaces in the database for management. When the user renews the domain name space, an email is sent for notification, then, I will perform the "batch" operation here. It is easy to use the mail sending function. How can I implement the mail sending function? Next, I will talk about how to add a mail sending function to the website in my summer blog.
First, download an smtp php mail sending class. The Code is as follows:

<?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 "
"; //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 . [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."
"; } } 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 ?>

There are a lot of such email sending types on the Internet. You can just pick one that you like and save the above Code as the ZC_Email.class.php file, and then directly export de_once ("ZC_Email.class.php") when using it ") the Code is as follows:

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

This is to embed the mail sending class into the page, and the next step is to send the content on the page. My system here is to send the content after the user purchases it successfully. The instance code is as follows:

// Send the email $ smtpserver = "smtp.163.com"; // SMTP server $ smtpserverport = 25; // SMTP server port $ smtpusermail = "xiariboke@163.com "; // SMTP server user email $ smtpemailto = "xiariboke@qq.com"; // send to $ smtpuser = "xiariboke@163.com"; // SMTP server user account $ smtppass = "xiariboke "; // SMTP server user password $ mailsubject = ""; // Email Subject $ mailbody = "$, the domain name is: $ domain :". format_date (time (), 2 ). "expiration time: $ lasttime ". format _ Date (time (), 5); // mail content $ mailtype = "TXT"; // mail format (HTML/TXT ), TXT is a text email #################################### ###### $ smtp = new smtp ($ smtpserver, $ smtpserverport, true, $ smtpuser, $ smtppass); // here, true indicates that authentication is used; otherwise, authentication is not used. $ smtp-> debug = false; // whether to display the sent debugging information $ smtp-> sendmail ($ smtpemailto, $ smtpusermail, $ mailsubject, $ mailbody, $ mailtype ); // The email sending ends with showmsg ('purchase successful! ', 'Zc _ Link_List.php? Sort = 2 ');

The SMTP server user's email address and password should be set by yourself. This is a designated email address. Of course, you can change it to your own. The variables here are all used in my site, if you do not need it, you can modify it by yourself.
I hope this article will help you learn php programming.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.