【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送

第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php

第二步: 将phpmailer文件夹放到extend 扩展类库目录(可定义)中

第三步:打开phpmailer.php 和 class.smtp.php文件,最前面加上命名空间(TP5 必须要加上命名空间)

namespace phpmailer;  //phpmailer 这是文件夹的名称

第四步:控制器中可以直接调用,调用前需要先引入phpmailer库文件

 1 use phpmailer\phpmailer; //引入extend/phpmailer中的phpmailer.php邮件发送类文件 

由于邮箱发送可以多个地方多次调用,我就把他封装到common.php公共应用方法中

common.php文件内容如下

 1 use phpmailer\phpmailer;  //引入extend中的邮件发送类文件
 2 // 应用公共文件
 3 
 4 /**
 5  * @param $sjr  收件人
 6  * @param $title 标题
 7  * @param $content 邮件内容
 8  *
 9  * @throws \phpmailer\phpmailerException
10  */
11 function sendEmail($sjr,$title,$content){  
12     
13     try {
14         $mail = new PHPMailer(true);
15         $mail->IsSMTP();       // 设定使用SMTP服务,SMTP简单邮件传输协议
16 
17         $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
18         $mail->SMTPAuth = true; //开启认证
19         $mail->Port = 25;       // SMTP服务器的端口号
20         $mail->Host = "smtp.163.com"; // SMTP 服务器
21         $mail->Username = "cj392085780@163.com";   //SMTP服务器用户名,邮箱号
22         $mail->Password = "11111111111";          //SMTP服务器密码 授权码
23         //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示
24 
25         $mail->AddReplyTo("cj372835766@163.com","这里输入回复邮件内容");//回复地址(收件人回复。发件人可以看到回复信息)  第一个参数是发件人邮箱,第二个为快捷回复的内容
26         $mail->FromName = "八神网络"; //发件人的名称
27         $mail->From = "cj392085780@163.com"; //发件人邮箱
28 
29         $to = $sjr;              //收件人地址
30         $mail->AddAddress($to);
31         $mail->Subject = $title; //邮件标题
32         $mail->Body = $content;  //邮件内容
33         $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
34         $mail->WordWrap = 80; // 设置每行字符串的长度
35         //$mail->AddAttachment("f:/test.png"); //可以添加附件
36         $mail->IsHTML(true);
37 
38         $mail->Send(); //发送邮件
39         echo "邮件发送成功";
40         //return 1;  //发送成功  输出1
41     } catch (phpmailerException $e) {
42         echo "邮件发送失败:".$e->errorMessage();
43     }
44 }

 

控制器中调用common.php中的方法实现邮箱发送

 1 public function index()
 2     {
 3         $sjr='392085780@qq.com';
 4         $title='tp5邮箱发送';
 5         $content='你好啊';
 6         $result=sendEmail($sjr,$title,$content);  //调用common.php的方法发送邮件
 7         //if($result==1){
 8            // $this->success('邮件发送成功');
 9         //}
10     }

 

主要注意的是phpmailer.php文件最后  Exception前加一个\    就 OK 了  ,希望对大家有帮助

 

posted @ 2018-01-26 12:15  程镜  阅读(435)  评论(0)    收藏  举报