【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 了 ,希望对大家有帮助

每天学习一点点新的知识,每天分享一点点技术,与大家一起加油~

浙公网安备 33010602011771号