ThinkPHP中使用PHPMailer插件发邮件

{{ time }}

Step1 下载PHPMailer插件

Step2 将其解压后放在ThinkPHP的/Vendor下, 放完之后长这样:

Step3 好比说, 我们要在Forget控制器中的index方法发送一封邮件, 那么Forget控制器长这样:

<?php
namespace app\index\controller;

use think\Controller;


require VENDOR_PATH . 'PHPMailer/PHPMailer/src/Exception.php';
require VENDOR_PATH . 'PHPMailer/PHPMailer/src/PHPMailer.php';
require VENDOR_PATH . 'PHPMailer/PHPMailer/src/SMTP.php';
 
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception ;

class Forget extends Controller
{

  public function index()
  {

    $mail = new PHPMailer();
    $mail->isSMTP(); // 启用SMTP
    //$mail->SMTPDebug=1; //开启调试模式
    $mail->SMTPSecure = "ssl";//要改动1: QQ邮箱使用SSL
    $mail->CharSet='utf-8'; //设置邮件编码格式
    $mail->Host="smtp.qq.com;"; //smtp服务器的名称(这里以126邮箱为例)//要改动2: 输入你的smtp服务器地址
    $mail->SMTPAuth = true; //启用smtp认证
    $mail->Username = "ricky1986@qq.com"; //你的邮箱名可以不写@后缀,也可以写//要改动3: 输入你的邮箱用名
    $mail->Password = "你的SMTP密码" ; //邮箱密码,现在开启邮箱SMTP后叫做安全码 //要改动4: 输入你的smtp密码, 并不是网页邮箱密码, 这个密码在QQ邮箱设置smtp时得到
    $mail->Port=465; //SMTP端口号//要改动5:你的SMTP端口
    //$mail->Port = 994;
    $mail->setFrom("ricky1986@qq.com","Ricky给你的信"); //发件人地址(也就是你的邮箱地址)和发件人名称//要改动6, 写你的邮箱, 写发件人名称
    $mail->AddAddress("ricky1986@foxmail.com",""); //接收人地址和名称//要改动7, 收件人地址, 这里写成固定的
    $mail->WordWrap = 100; //设置每行字符长度
    $mail->isHTML(true); // 是否HTML格式邮件
    $mail->Subject ="你好这是测试的"; //邮件主题
    $mail->Body = "给你发送个信息"; //邮件内容
    //$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
    var_dump($mail->Send()); //发送方法,发送成功返回true,失败返回false
    //echo $mail->ErrorInfo; //获取错误信息
  }

}

使用以上代码, 把上面的7个"要改动"改成你自己的信息, 你需要一个支持smtp的邮箱; 如果不是用ssl的邮箱, 可以把"要改动1"注释掉, 然后端口可能是25

这样就可以发送邮件了.