Tp5整合PHPmailer实现项目的邮件发送功能

tp5整合phpmailer首先需要将你的发件箱的smtp服务开启才可以,拿163邮箱为例说明

1、进入邮箱,找到打开设置功能

1.png

2、打开pop3/smtp/imap设置页面,开启POP3/SMTP服务。

3.png

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';


其实手动引入也没什么不好,但手动引入时总是伴随着引入路径出错,这时候还要纠错,比较浪费时间,还是看个人的选择。