小白想问Thinkphp如何发送邮件?

1,183 阅读1分钟

导读:

一些刚接触Thinkphp开发的童鞋,可能不太会使用扩展,当遇到需要使用邮箱发送验证码或注册链接时,就手足无措了,本文将教会大家如何使用PHPMailer扩展发送邮件,一起来动动小手吧!

官方下载地址(需要自己整理):

github.com/PHPMailer/P…

CSDN下载地址(已经通过测试):

download.csdn.net/download/qq…

 一、添加扩展

1、把下载好的PHPMailer.zip解压,放到Thinkphp的extend扩展目录,解压的文件夹命名为:PHPMailer

2、把PHPMailer里所有文件的命名空间设置为 namespace PHPMailer,如下:

二、封装发送邮件的方法

1、在application/common.php文件里,引入PHPMailer扩展

<?php
use PHPMailer\PHPMailer;

2、在application/common.php文件里,封装一个发送邮件的sendMail()方法,代码如下:

<?php
/**
 * 邮件发送
 *
 * @param  string $to              收件方
 * @param  string $title           标题
 * @param  string $content         内容
 *
 * @return bool          发送状态
 */
function sendMail($to, $title, $content){
    $mail=new PHPMailer();
	$mail->IsSMTP();		   //设置PHPMailer使用SMTP服务器发送Email
	$mail->CharSet='UTF-8';    //设置邮件的字符编码,这很重要,不然中文乱码
	$mail->SMTPAuth   = true;  //设置SMTP是否需要密码验证,true表示需要
	$mail->Host       = "smtp.qq.com"; //设置邮件服务器的地址
	$mail->Port       = 465;  //设置邮件服务器的端口,默认为25
	$mail->From       = "api999@qq.com"; //设置发件人的邮箱地址
	$mail->FromName   = "易发卡"; //设置发件人的姓名                 
	$mail->SMTPSecure = "ssl";
	$mail->Username   = "api999@qq.com";
	$mail->Password   = "授权码";	
	$mail->AltBody    = "text/html"; // optional, comment out and test	
	$mail->IsHTML(true); //设置内容是否为html类型
    $mail->Subject    = $title; //设置邮件的标题
    $mail->Body       =  $content;
	$mail->AddAddress(trim($to), ''); //设置收件的地址
    if (!$mail->Send()) {
		//发送邮件
		//echo '发送失败:' . $mail->ErrorInfo;
		return false;
	} else {
		// echo "发送成功";
		return true;
	}
}

3、调用发送邮件很简单,如下:

<?php
$to ="15577969@qq.com";//填写要发送到的邮箱
$title = "邮件测试";//标题
$content ="测试phpmailer发送邮件功能";//邮件内容
$falg = sendMail($to, $title, $content);
if($falg ){
    echo "发送成功";
}else{
    echo "发送失败";
}