Home  >  Article  >  Backend Development  >  Detailed explanation of usage examples of PHP mail sending class PHPMailer, mail sending phpmailer_PHP tutorial

Detailed explanation of usage examples of PHP mail sending class PHPMailer, mail sending phpmailer_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:18:29768browse

Detailed explanation of usage examples of PHP email sending class PHPMailer, email sending phpmailer

The example in this article describes the usage of PHP mail sending class PHPMailer, and details its specific operation steps. Share it with everyone for your reference. 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

<&#63;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 = 'ssl';   // 加密方式 
  //$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['path'])){ 
          array_push($send_attachments, $attachments);           
        }else{ 
          foreach($attachments as $attachment){ 
            array_push($send_attachments, array('path'=>$attachment)); 
          } 
        } 
      }else{ 
        $send_attachments = $attachments; 
      } 
 
      foreach($send_attachments as $attachment){ 
        $attachment['name'] = isset($attachment['name'])&#63; $attachment['name'] : null; 
        $attachment['encoding'] = isset($attachment['encoding'])&#63; $attachment['encoding'] : 'base64'; 
        $attachment['type'] = isset($attachment['type'])&#63; $attachment['type'] : 'application/octet-stream'; 
        if(isset($attachment['path']) && file_exists($attachment['path'])){ 
          $mail->AddAttachment($attachment['path'],$attachment['name'],$attachment['encoding'],$attachment['type']); 
        } 
      } 
    }elseif(is_string($attachments)){ 
      if(file_exists($attachments)){ 
        $mail->AddAttachment($attachments); 
      } 
    } 
  } 
 
  $mail->Subject = $subject; // 邮件标题 
  $mail->Body   = $content; // 邮件內容 
  return $mail->Send();  
} 
 
// DEMO示例如下: 
$receiver = 'receiver@test.com'; 
$sender = 'sender@test.com'; 
$sender_name = 'sender name'; 
$subject = 'subjecct'; 
$content = 'content'; 
 
// 四种格式都可以 
$attachments = 'attachment1.jpg'; 
$attachments = array('path'=>'attachment1.jpg', 'name'=>'附件1.jpg'); 
$attachments = array('attachment1.jpg','attachment2.jpg','attachment3.jpg'); 
$attachments = array( 
  array('path'=>'attachment1.jpg', 'name'=>'附件1.jpg'), 
  array('path'=>'attachment2.jpg', 'name'=>'附件2.jpg'), 
  array('path'=>'attachment3.jpg', 'name'=>'附件3.jpg'), 
); 
$flag = sendMail($receiver, $sender, $sender_name, $subject, $content, true, $attachments); 
echo $flag; 
&#63;> 

Click here to download the source code.

I hope this article will be helpful to everyone’s learning of PHP programming.

For sending emails in the php system, I used the phpmailer class to write it and implemented it according to the methods introduced online, but I encountered problems during operation

The corresponding error prompts are fed back to you, and you can deal with the problem based on the feedback information.
1. Could not authenticate. It means that the authentication cannot be passed. Maybe your email does not enable SMTP
2. cannot connect SMTP host. It means that the SMTP server cannot be connected

In fact, there is nothing to pay attention to. The main thing is that you will not go wrong if you configure the SMTP information correctly and your mailbox is enabled to allow SMTP connections. phpmailer officially provides demo cases, please check the configuration and usage

php failed to send email using phpmailer

The server does not have SMTP

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/882901.htmlTechArticleDetailed explanation of usage examples of PHP mail sending class PHPMailer, mail sending phpmailer This article describes the usage of PHP mail sending class PHPMailer, and The specific operation steps are described in detail. Share with everyone...
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