Home >Backend Development >PHP Tutorial >Usage of php mail sending class PHPMailer

Usage of php mail sending class PHPMailer

怪我咯
怪我咯Original
2017-07-12 13:37:472591browse

PHPMailer is a powerful email sending class written in PHP. It can be used to send emails more conveniently, and can also send attachments and emails in HTML format. It can also use an SMTP server to send emails. .

PHPMailer Main Functions

  • Include multiple TO, CC, BCC and REPLY-TO in the email.

  • The platform is widely used and supported SMTP servers include Sendmail, qmail, Postfix, Gmail, Imail, Exchange, etc.

  • Supports embedded images, attachments, and HTML emails.

  • Reliable and powerful debugging function.

  • Support SMTP authentication.

  • Customize the email header.

  • Supports 8bit, base64, binary and quoted-printable encoding.

This article mainly introduces the usage of PHPmail sending class PHPMailer, and details the installation and configuration methods and function implementation code. It is of great practical value. Friends in need can refer to it. The specific steps are as follows:

1. Install sendmail on the server

sudo apt-get install sendmail

2. Start sendmail

sudo /etc/init.d/sendmail start

3. Modify php.ini

[mail function] 
SMTP = localhost 
smtp_port = 25 
sendmail_from = me@example.com

4.Function sendMail function is as follows

<?php 
/* 调用PHPMailer发送电邮 
* @param String $receiver   收件人 
* @param String $sender    发件人 
* @param String $sender_name 发件人名称如为空则用发件人地址代替 
* @param String $subject   邮件主题 
* @param String $content   邮件内容 
* @param boolean $ishtml    是否html电邮 
* @param Array  $attachements 附件 
* @return boolean 
*/ 
function sendMail($receiver, $sender, $sender_name, $subject, $content, $ishtml=true, $attachments=array()) { 
  include_once "class-phpmailer.php";  
 
  if(empty($receiver) || empty($sender) || empty($subject) || empty($content)){ 
    return false; 
  } 
   
  $mail = new PHPMailer();  
 
  //$mail->IsSMTP();        // 经smtp发送  
  //$mail->Host = "smtp.gmail.com"; // SMTP 服务器 
  //$mail->Port = 465;       // SMTP 端口 
  //$mail->SMTPSecure = &#39;ssl&#39;;   // 加密方式 
  //$mail->SMTPAuth = true;     // 打开SMTP认证 
  //$mail->Username = "username";  // 用户名 
  //$mail->Password = "password";  // 密码 
 
  $mail->IsMail();         // using PHP mail() function 有可能會出現這封郵件可能不是由以下使用者所傳送的提示 
       
  $mail->From = $sender;      // 发信人  
  $mail->FromName = $sender_name;  // 发信人别名  
  $mail->AddReplyTo($sender);    // 回覆人 
  $mail->AddAddress($receiver);   // 收信人  
 
  // 以html方式发送 
  if($ishtml){ 
    $mail->IsHTML(true); 
  } 
 
  // 发送附件 
  if($attachments){ 
    if(is_array($attachments)){ 
      $send_attachments = array(); 
 
      $tmp_attachments = array_slice($attachments,0,1); 
      if(!is_array(array_pop($tmp_attachments))){ 
        if(isset($attachments[&#39;path&#39;])){ 
          array_push($send_attachments, $attachments);           
        }else{ 
          foreach($attachments as $attachment){ 
            array_push($send_attachments, array(&#39;path&#39;=>$attachment)); 
          } 
        } 
      }else{ 
        $send_attachments = $attachments; 
      } 
 
      foreach($send_attachments as $attachment){ 
        $attachment[&#39;name&#39;] = isset($attachment[&#39;name&#39;])? $attachment[&#39;name&#39;] : null; 
        $attachment[&#39;encoding&#39;] = isset($attachment[&#39;encoding&#39;])? $attachment[&#39;encoding&#39;] : &#39;base64&#39;; 
        $attachment[&#39;type&#39;] = isset($attachment[&#39;type&#39;])? $attachment[&#39;type&#39;] : &#39;application/octet-stream&#39;; 
        if(isset($attachment[&#39;path&#39;]) && file_exists($attachment[&#39;path&#39;])){ 
          $mail->AddAttachment($attachment[&#39;path&#39;],$attachment[&#39;name&#39;],$attachment[&#39;encoding&#39;],$attachment[&#39;type&#39;]); 
        } 
      } 
    }elseif(is_string($attachments)){ 
      if(file_exists($attachments)){ 
        $mail->AddAttachment($attachments); 
      } 
    } 
  } 
 
  $mail->Subject = $subject; // 邮件标题 
  $mail->Body   = $content; // 邮件內容 
  return $mail->Send();  
} 
 
// DEMO示例如下: 
$receiver = &#39;receiver@test.com&#39;; 
$sender = &#39;sender@test.com&#39;; 
$sender_name = &#39;sender name&#39;; 
$subject = &#39;subjecct&#39;; 
$content = &#39;content&#39;; 
 
// 四种格式都可以 
$attachments = &#39;attachment1.jpg&#39;; 
$attachments = array(&#39;path&#39;=>&#39;attachment1.jpg&#39;, &#39;name&#39;=>&#39;附件1.jpg&#39;); 
$attachments = array(&#39;attachment1.jpg&#39;,&#39;attachment2.jpg&#39;,&#39;attachment3.jpg&#39;); 
$attachments = array( 
  array(&#39;path&#39;=>&#39;attachment1.jpg&#39;, &#39;name&#39;=>&#39;附件1.jpg&#39;), 
  array(&#39;path&#39;=>&#39;attachment2.jpg&#39;, &#39;name&#39;=>&#39;附件2.jpg&#39;), 
  array(&#39;path&#39;=>&#39;attachment3.jpg&#39;, &#39;name&#39;=>&#39;附件3.jpg&#39;), 
); 
$flag = sendMail($receiver, $sender, $sender_name, $subject, $content, true, $attachments); 
echo $flag; 
?>

The above is the detailed content of Usage of php mail sending class PHPMailer. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn