ThinkPHP5.0之PHPmailer发送邮箱(qq、163)
-
下载phpmailer, 然后在thinkphp5 目录下的 扩展类库 extend目录下 新建phpmailer目录。
把你下载的phpmailer里的class.phpmailer.PHP和class.smtp.php文件复制到phpmailer目录下。
注意:thinkphp5的扩展类的定义是,类文件命名为:phpmailer.php而不是class.phpmailer.php。所以要把class.phpmailer.php重命名为PHPMailer.php。 另一个也是改为SMTP.php。 -
开启openssl扩展
-
在下载的类里面使用命名空间 name phpmailer;
-
在所有模块的公共函数common.php里写一个方法引入类库并实例化邮件类
// 发送邮件
function sendmail($to,$title,$content){
// 加载发送邮件的扩展类库
$mail = new \Org\Util\PHPMailer();
// var_dump($mail);
// 设置字符集
$mail->CharSet = "utf-8";
// 设置采用SMTP方式发送邮件
$mail->IsSMTP();
// 设置邮件服务器地址
$mail->Host = "smtp.qq.com";// qq
// 设置邮件服务器的端口 163端口25
$mail->Port = 465;
// 设置发件人的邮箱地址
$mail->From = "xxxx@qq.com";
// 设置发送方名称
$mail->FromName = 'xxxx';
// 设置SMTP是否需要密码验证
$mail->SMTPAuth = true;
// 发送方
$mail->Username = "xxx@qq.com";// 发件方邮箱
// $mail->Password = "xxx";// 163客户端的授权密码
$mail->Password = "xxx";// qq客户端的授权密码
$mail->SMTPSecure = "ssl";// qq才需要使用ssl协议方式,163不需要
// 发送邮件的主题
$mail->Subject = $title;
// 内容类型 文本型
$mail->AltBody = "text/html";
// 发送的内容
$mail->Body = $content;
// 设置内容是否为html格式
$mail->IsHTML(true);
// 设置接收方
$mail->AddAddress(trim($to));
if(!$mail->Send()){
// return false;
echo "失败".$mail->ErrorInfo;
}else{
return true;
}
5.在控制器中调用公共函数方法
/**
* 扩展类库邮件发送类
*/
public function mail()
{
// 直接调用公共邮件发送函数
$res = sendmail("xxx@163.com", "菜鸟学it", "测试");
dump($res);
}
- 定义路由
Route::get('/admin/mail', 'admin/Index/mail');
- 访问这条路由即能发送邮件