TP6使用PHPMailer发送邮件

1.先安装composer,官网地址:getcomposer.org/download/

2.composer安装中一定要选择正确的php版本,即php.exe文件,否则无法使用

3.修改composer的镜像源为国内地址:

bash 复制代码
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

(由于防火墙问题,不修改镜像源可能无法下载插件)

4.打开命令行,切换到网站根目录,执行命令:composer require phpmailer/phpmailer,会自动安装到TP6的vendor扩展目录中。

5.TP6中引入模块及发送邮件函数

php 复制代码
//发送邮件模块引入
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
//发送邮件函数
function postEmail($email,$title){
    // 创建一个 PHPMailer 实例
    $mail = new PHPMailer(true);

    try {
        // 服务器设置
        $mail->SMTPDebug = SMTP::DEBUG_OFF; // 关闭调试输出
        $mail->isSMTP(); // 使用 SMTP
        $mail->Host = 'smtp.sina.com'; // 设置 SMTP 服务器,可根据实际更改
        $mail->SMTPAuth = true; // 启用 SMTP 身份验证
        $mail->Username = '***'; // 你的 邮箱地址
        $mail->Password = '***'; // 你的 邮箱授权码
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // 使用 SSL 加密
        $mail->Port = 465; // 端口号

        // 设置字符编码为 UTF-8
        $mail->CharSet = 'UTF-8';

        // 收件人设置
        $mail->setFrom('***', '***'); // 发件人邮箱和姓名
        $mail->addAddress($email, '用户'); // 收件人邮箱和姓名

        //生成6位验证码
        $yzm =  rand(100000, 999999);
        //session赋值
        Session::set('yzm',$yzm);
        // 内容设置
        $mail->isHTML(true); // 设置邮件格式为 HTML
        $mail->Subject = $title; // 邮件主题
        $mail->Body = '<p style="font-size:18px;color:#666;">验证码:'.$yzm.'</p>'; // 邮件正文(HTML 格式)
        $mail->AltBody = 'This is a email sent using PHPMailer from snow-north.cn'; // 邮件正文(纯文本格式)

        // 发送邮件
        $mail->send();
        return 'success';
    } catch (Exception $e) {
        return "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }
}
相关推荐
程序员爱钓鱼3 小时前
Python编程实战:面向对象与进阶语法——类型注解与代码规范(PEP 8)
后端·python·ipython
程序员爱钓鱼3 小时前
Python实战:用高德地图API批量获取地址所属街道并写回Excel
后端·python·ipython
Yeats_Liao3 小时前
时序数据库系列(三):InfluxDB数据写入Line Protocol详解
数据库·后端·时序数据库
王元_SmallA4 小时前
Redis Desktop Manager(Redis可视化工具)安装
java·后端
好好研究4 小时前
Spring框架 - 开发方式
java·后端·spring
hashiqimiya5 小时前
springboot后端的接口headers
java·spring boot·后端
ss2735 小时前
Springboot + vue 医院管理系统
vue.js·spring boot·后端
间彧5 小时前
InfluxDB详解与应用实战
后端
间彧5 小时前
对比InfluxDB与Prometheus在监控场景下的特点及选型建议
后端