网站一般都具备一个功能,就是邮箱提醒功能;比如收到反馈信息来一条邮箱提醒,网站有了信息留言了来一条邮箱提醒等等。这时候我们就要用到phpmailer这个插件了。
插件可以到git下载 https://github.com/PHPMailer/PHPMailer
下载下来后得到一个压缩包,我们只要里面两个文件,对的只要两个。把压缩包里边src目录的 PHPMailer.php 和 SMTP.php 提取出来。把它丢进tp5扩展extend中。


丢进去后就不用管了,接着下一步写一个发送邮件的方法。
为方便全站调用phpmailer,我们可以把方法写在common.php公用文件中
<?php
use PHPMailer\PHPMailer;
/**
* @desc 发送普通邮件
* @param $title 邮件标题
* @param $Address 收件人邮箱
* @param $body 邮件正文
* @return bool|string 返回是否发送成功
*/
function SendEmail($title, $Address, $body){
$mail = new PHPMailer();//实例化
$mail->IsSMTP();// 启用SMTP
$mail->Host = "smtp.qq.com";//SMTP服务器 以qq邮箱为例子 还可以是smtp.163.com 等等其它的smtp服务地址
$mail->Port = 465;//邮件发送端口 一般为465 不需要修改
$mail->SMTPAuth = true;//启用SMTP认证
$mail->SMTPSecure = "ssl";// 设置安全验证方式为ssl
$mail->CharSet = "UTF-8";//字符集
$mail->Encoding = "base64";//编码方式
$mail->Username = "";//你的邮箱(是开启了smtp服务的邮箱,随便写是无效的)
$mail->Password = "";//你的smtp服务密码(是服务密码不是登陆密码,写登陆密码也是无效的)
$mail->From = "";//发件人邮箱地址(这里也填smtp服务邮箱就好)
$mail->FromName = "";//发件人的名字(这个就随便了,什么阿猫阿狗都行) //下面这些不需要修改
$mail->Subject = $title;//邮件标题
$mail->AddAddress($Address);//收件人邮箱
$mail->IsHTML(true);//支持html格式内容
$mail->Body = $body;//邮件主体内容
if ($mail->Send()) {
return true;
}else{
return true; "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息
}
}把以上该填写的配置好了之后就可以全局调用这个方法发邮箱了
<?php
namespace app\index\controller;
use app\common\controller\SysAction;
class Index extends SysAction
{
public function index()
{
$title = '这里是邮箱标题!';
$Address = 'aaa@qq.com';//收件人邮箱
$body = '这是发送邮件的内容,这里是支持html格式的,比如 <div style="font-size:36px;">我是div标签,有没有字体很大了?</div>';
//这里有三个参数,分别是 邮件标题,收件人邮箱,邮件内容
$send = SendEmail($title, $Address, $body);
if($send){
echo "邮箱发送成功";
} else {
echo $send;
};
}
}只要运行上面方法就可以给指定的人发送邮件了,效果如下(smtp要配置好,不然是没效果的)


微信扫码查看本文
发表评论