
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