基于thinkPHP使用PHPMailer发送邮件

一、phpmailer 安装或者下载方式
1、从 github 上下载: https://github.com/PHPMailer/PHPMailer/
2、使用 composer 安装(推荐使用):

composer require phpmailer/phpmailer

二、目录结构
在这里插入图片描述
主要是PHPMailer.php和SMTP.php两个文件

三、php设置
一般主流邮箱的 SMTP 服务器,必须通过 SSL 加密的,所以 PHP 要开启 openssl 扩展。

四、具体代码

<?php
//注意这个
use PHPMailer\PHPMailer\PHPMailer;

class Test
{
	public function sendEmail()
	{
		$email = new PHPMailer();
		//使用SMTP发送邮件
		$email->isSMTP();
		//调试模式
		$email->SMTPDebug = 2;
		//SMTP主机
		$email->Host = 'smtp.qq.com';
		//SMTP用户名
		$email->Username = '123456@qq.com';
		//SMTP密码
		$email->Password = 'xxxxxxxxxxxxx';
		//设置邮件的发件人电子邮件地址
		$email->From = '123456@qq.com';
		//设置消息的主题。
		$email->Subject = '验证码';
		//本消息正文
		$email->Body = '你的验证码是123456';
		//smtp需要鉴权 这个必须是true
		$email->SMTPAuth = true;
		//在SMTP连接上使用哪种加密
		$email->SMTPSecure = 'ssl';
		//SMTP服务器端口
		$email->Port = 465;
		//设置发送人
		$email->setFrom('123456@qq.com','测试');
		//添加收件人地址
		$email->addAddress('987654@qq.com');
		//添加抄送人
		$email->addCC('example@qq.com', '张三')
		//是否内容为html true是html(不是所有邮箱都支持,企微邮箱就不支持)
		$email->isHtml(false)
		//创建并发送消息
		$result = $email->send();
		if (!$result) {
			$this->error($email->ErrorInfo);
		}
		$this->success('成功');
	}
}

思考: 添加抄送人,我们注意到只能加一个人,但是实际场景中是需要抄送给多人的,那么要怎么抄送给多人呢?
解答: 我们只需要多次调用 addCC 方法即可

五、邮箱设置
所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,所以一般都有手动设置。
这里以qq邮箱为例:
在这里插入图片描述
在这里插入图片描述
ps:这串字符串就是代码里的password

六、常见错误
① 错误信息:SMTP ERROR: Failed to connect to server
问题:端口问题,ssl协议要使用465端口
②错误信息:SMTP connect() failed:
问题:密码问题等

ps:SMTPDebug = 2;这参数很重要,一般的错误都可以通过它准确的发现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值