Thinkphp如何发送邮件。
1、百度搜索 packagist (用来管理包的网站)
搜索phpmailer,点第二个进去
在phpstrom中使用composer下载,以下代码(注意使用composer安装之前,要记得换源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ )
composer require phpmailer/phpmailer
2、安装完成后,在thinphp包目录下vendor/下会有一个phpmaier文件夹,表示下载成功。
3、接下来在tp框架的application\下的common.php中添加代码,网站
可以直接复制这段简单的案例
下面这段代码是我测试邮件用的代码。有备注了详细注释的
// 应用公共文件
use PHPMailer\PHPMailer\PHPMailer;//这个是发邮件的类,引入进来
use PHPMailer\PHPMailer\Exception;//这个是发邮件失败了,报出异常
//这里是公共函数,用来创建前后端公用的内容
//require 'vendor/autoload.php';//用于composer自动加载
//$mailto要发送给谁。这里我给了4个字段,你可以自己定义,在model模型文件中直接调用email()这个函数即可
function email($mailto, $nickname, $subject, $content)
{
$mail = new PHPMailer(true); //实例化加载这个类,如果说邮件发送失败了,可以抛出异常
//开发环境下,是需要打开异常抛出的,实际情况下可以false关闭
try {
$mail->SMTPDebug = 2; //这里是调试模式,2的话表示详细错误信息,1的话是简要错误信息,0的话是不显示错误信息。 启用详细的调试输出
$mail->isSMTP(); // 设置邮件使用SMTP
$mail->Host = 'smtp.qq.com'; // 指定主和备份SMTP服务器
$mail->SMTPAuth = true; // 使SMTP认证
$mail->Username = 'xxxx@qq.com'; // SMTP用户名
$mail->Password = 'xxxx'; // SMTP 密码,注意这里不是你登录的密码。这个地方你要去136或者qq邮箱,去开通这个SMTP服务,他会提供一段密码给你的,
$mail->SMTPSecure = 'ssl'; // 启用TLS加密,也接受“ssl”
$mail->Port = 465; // 要连接的TCP端口
$mail->CharSet = 'utf-8'; //要发送的内容格式
//Recipients
$mail->setFrom('xxxx@qq.com', '来自马云'); //发邮件人
$mail->addAddress($mailto, $nickname); //收件人,可以设置好几个
//$mail->addReplyTo('xxx@163.com','xxx'); //这里是回复人,就是说收件用户,要回信是发给谁的,如果这里不写就默认上面的发件邮箱。
//$mail->addCC('xxx@163.com'); //这里是抄送地址;
//Attachments
//$mail->addAttachment('var/tmp/file.tar.gz'); //发送的时候是否添加附件
//Content
$mail->isHTML(true); // 设置电子邮件格式为HTML
$mail->Subject = $subject;
$mail->Body = $content;
// $mail->AltBody='发送错误'; //表示isHTML发送失败,就发送这个内容。
return $mail->send(); //这里是发送方法
}catch (Exception $e) {
exception($mail->ErrorInfo(), 1001);
}
}
4、最后测试,成功收到邮件