第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php
第二步: 将phpmailer文件夹放到extend 扩展类库目录(可定义)中
第三步:打开phpmailer.php 和 class.smtp.php文件,最前面加上命名空间(TP5 必须要加上命名空间)
namespace phpmailer; //phpmailer 这是文件夹的名称
第四步:控制器中可以直接调用,调用前需要先引入phpmailer库文件
use phpmailer\phpmailer; //引入extend/phpmailer中的phpmailer.php邮件发送类文件
由于邮箱发送可以多个地方多次调用,我就把他封装到common.php公共应用方法中
common.php文件内容如下
use phpmailer\phpmailer; //引入extend中的邮件发送类文件
// 应用公共文件 /**
* @param $sjr 收件人
* @param $title 标题
* @param $content 邮件内容
*
* @throws \phpmailer\phpmailerException
*/
function sendEmail($sjr,$title,$content){
try {
$mail = new PHPMailer(true);
$mail->IsSMTP(); // 设定使用SMTP服务,SMTP简单邮件传输协议 $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
$mail->SMTPAuth = true; //开启认证
$mail->Port = 25; // SMTP服务器的端口号
$mail->Host = "smtp.163.com"; // SMTP 服务器
$mail->Username = "cj392085780@163.com"; //SMTP服务器用户名,邮箱号
$mail->Password = "11111111111"; //SMTP服务器密码 授权码
//$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示 $mail->AddReplyTo("cj372835766@163.com","这里输入回复邮件内容");//回复地址(收件人回复。发件人可以看到回复信息) 第一个参数是发件人邮箱,第二个为快捷回复的内容
$mail->FromName = "八神网络"; //发件人的名称
$mail->From = "cj392085780@163.com"; //发件人邮箱 $to = $sjr; //收件人地址
$mail->AddAddress($to);
$mail->Subject = $title; //邮件标题
$mail->Body = $content; //邮件内容
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
$mail->WordWrap = 80; // 设置每行字符串的长度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true); $mail->Send(); //发送邮件
echo "邮件发送成功";
//return 1; //发送成功 输出1
} catch (phpmailerException $e) {
echo "邮件发送失败:".$e->errorMessage();
}
}
控制器中调用common.php中的方法实现邮箱发送
public function index()
{
$sjr='392085780@qq.com';
$title='tp5邮箱发送';
$content='你好啊';
$result=sendEmail($sjr,$title,$content); //调用common.php的方法发送邮件
//if($result==1){
// $this->success('邮件发送成功');
//}
}
主要注意的是phpmailer.php文件最后 Exception前加一个\ 就 OK 了 ,希望对大家有帮助