首页 > 建站教程 > PHP框架 >  thinkphp5配合PHPMailer发送邮件正文

thinkphp5配合PHPMailer发送邮件

这里是thinkPHP5配合PHPMailer-5.2.24,给邮箱发送邮件的具体步骤(亲测,可行):

1、在自己的邮箱设置中,开启SMTP服务,以163邮箱为例:
    ①、登录邮箱,在侧边栏找到“邮箱中心”后面的设置按钮



    ②、在设置中找到“POP3/SMTP/IMAP”,点击,在右边开启服务:



在开启时,会提供一个密码,将它记下来,后面有用。

2、打开php.ini,开启 extension=openssl

3、下载PHPMailer-5.2.24.zip

4、解压下载的 PHPMailer 压缩文件,将class.phpmailer.php和class.smtp.php文件拷贝到thinkPHP项目的extend目录中的phpmailer目录下(phpmailer是自己新建的),当然,您也可以自己放到其他目录,只是后面的命名空间记住不要写错了。

5、将class.phpmailer.php和class.smtp.php更名为phpmailer.php和smtp.php

6、在phpmailer.php上面加入下面代码:
namespace phpmailer;
use phpmailer\smtp;
7、在phpmailer.php中找到下面的代码:
class phpmailerException extends Exception
改为:
class phpmailerException \extends Exception
8、给smtp.php也加入命名空间
namespace phpmailer;
9、发送邮件(这里以发送验证码为例)方法:
public function send_code_to_email($email,$code){
    $toemail = $email;
    $mail = new PHPMailer();
    $mail->isSMTP();  //开启smtp服务。php里面也要开启ssl
    $mail->Charset = 'utf8';
    $mail->Host = 'smtp.163.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'xxxxx@163.com';  //你自己的邮箱
    $mail->Password = 'SAQNHRTNRFBCMNPW';  //开启smtp时的密码,第一步里面得到的
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 994;
    $mail->setFrom('xxxxx@163.com', '接口测试'); //设置显示发件人
    $mail->addAddress($toemail,'test');   //设置显示收件人邮箱和姓名
    $mail->addReplyTo('xxxxx@163.com','Reply');
    $mail->Subject = '您有新的验证码!';
    $mail->Body = "这是一个测试邮件,您的验证码是$code,验证码的有效期为1分钟,本邮件请勿回复!";
    if(!$mail->send()){
        $this->return_msg(400,$mail->ErrorInfo);
    }else{
        $this->return_msg(200,'验证码已发送,请注意查收!');
    }
}
至此,全部完成!下面是利用上面的方法发送成功的邮件截图:



当然,登录你刚才的163邮箱,进入已发送,也能看到发送的邮件。