Tp5整合PHPmailer实现项目的邮件发送功能
tp5整合phpmailer首先需要将你的发件箱的smtp服务开启才可以,拿163邮箱为例说明
1、进入邮箱,找到打开设置功能
2、打开pop3/smtp/imap设置页面,开启POP3/SMTP服务。
3、开启之后系统会提示你设置授权密码,可以自定义,也可以使用系统自动生成的密码。
整合过程
1、下载phpmailer插件,可以通过composer下载或者去githup直接搜索phpmailer,我这里以composer为例,执行composer命令
composer require phpmailer/phpmailer
2、直接在你的控制器中引入phpmailer,如下代码:
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception;
3、如果能引入成功的话,直接使用new PHPMailer();即可成功创建phpmailer对象,成功创建对象之后,phpmailer里面的方法都可以使用。
4、贴一下phpmailer发送邮件的具体方法
public function mailSend($mailTitle, $mailBody, $sender){ $mail = new PHPMailer(); $mail->CharSet = 'UTF-8'; //var_dump($mail); $mail->SMTPDebug = 0; $mail->isSMTP(); $mail->SMTPSecure = 'ssl'; $mail->SMTPAuth=true; //是否启用smtp认证 $mail->Host = "smtp.163.com"; //这里可以是163、QQ、139等等 $mail->Port = 465; //端口号 $mail->Username = "你的邮箱地址"; $mail->Password = "邮箱密码"; $mail->SetFrom('你的邮箱地址', '邮件标题'); $mail->addAddress($sender, ''); //$sender就是发送目标的邮箱地址 $mail->addReplyTo('xxxxxx@163.com', ''); //回复邮箱的地址和名称,可以留空 $mail->isHTML(true); $mail->Subject = $mailTitle; //邮件标题 $mail->Body = $mailBody; //邮件内容 $res = $mail->send(); //以上参数配置正确,最后执行send方法发送邮件 }
5、在网上看到很多人都喜欢将下载的phpmailer放到thinkphp的extends目录,其实本质是一样的,只不过放在extents目录需要手动引入才行,手动引入方法如下:
require '../extend/PHPMailer/src/Exception.php'; require '../extend/PHPMailer/src/PHPMailer.php'; require '../extend/PHPMailer/src/SMTP.php';
其实手动引入也没什么不好,但手动引入时总是伴随着引入路径出错,这时候还要纠错,比较浪费时间,还是看个人的选择。