PHP邮件SMTP发送,本文以thinkphp5来讲,首页下载PHPMailer扩展,下载地址:https://github.com/PHPMailer/PHPMailer
下载完后解压会有如下图显示文件:
打开src文件夹拷贝出三个文件:Exception.php、PHPMailer.php、SMTP.php
然后在网站extend文件夹里新建PHPMailer文件夹,把上面三个文件拷进去,如下图:
接着分别打开三个文件修改命名空间为:namespace PHPMailer
接首打开application\common.php文件输入发送邮件的代码,这里以QQ邮箱为例:
// 应用公共文件 /** * 发送邮箱 * @param type $data 邮箱队列数据 包含邮箱地址 内容 */ use PHPMailer\PHPMailer; function sendEmail($to,$title,$content) { Vendor('PHPMailer.PHPMailer'); $mail = new PHPMailer(); //实例化 $mail->IsSMTP(); // 启用SMTP $mail->Host = 'smtp.qq.com'; //SMTP服务器 以qq邮箱为例子 $mail->Port = 465; //邮件发送端口 $mail->SMTPAuth = true; //启用SMTP认证 $mail->SMTPSecure = "ssl"; // 设置安全验证方式为ssl $mail->CharSet = "UTF-8"; //字符集 $mail->Encoding = "base64"; //编码方式 $mail->Username = 'xxxxxx@qq.com'; //你的邮箱 $mail->Password = 'xxxxxxxxxxxxxxxx'; //你的密码,也就是QQ邮箱里获取的授权码 $mail->Subject = $title; //邮件标题 $mail->From = 'xxxxxx@qq.com'; //发件人地址(也就是你的邮箱) $mail->FromName = '哈喽吧'; //发件人姓名 $mail->AddAddress($to, "亲"); //添加收件人(地址,昵称) $mail->IsHTML(true); //支持html格式内容 $mail->Body = $content; //邮件主体内容 //发送成功就删除 if ($mail->Send()) { echo "发送成功"; }else{ echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息 } }
上面配置好了开始调用,代码如下:
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { return $this->fetch(); } public function email(){ $tomail=input('tomail'); $title=input('title'); $content=input('content'); //获取提交的信息 sendEmail($tomail,$title,$content); } } ?>
到此thinkphp5+PHPMailer邮件发送配置完成,大家可以去尝试下了哈!!
注意:
1、PHPMailer支持需要开启sockets和openssl,可以以通过phpinfo()来查看是否开启,如没开启请到php.ini配置文件中把即;号去掉。
2、中文乱码问题:要想不产生乱码必须做的编码统一为utf-8,包括$mail->CharSet='UTF-8'、发送的页面及发送代码函数所在页面。
上一篇:Thinkphp5:[ error ] [8]A non well formed numeric value encountered报错解决方法
讨论数量:0