网站一般都具备一个功能,就是邮箱提醒功能;比如收到反馈信息来一条邮箱提醒,网站有了信息留言了来一条邮箱提醒等等。这时候我们就要用到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要配置好,不然是没效果的)
微信扫码查看本文
发表评论