TP6实现发邮件

本文介绍了轻量级的jQuery插件toastr,用于创建自定义的网页提示信息,并展示了如何设置各种类型的通知。此外,还详细讲解了如何使用PHPMailer发送邮件,包括SMTP配置和授权码的获取,以及发送邮件的完整代码示例。
摘要由CSDN通过智能技术生成

toastr通知

jquery toastr 一款轻量级的通知提示框插件。 网页开发中经常会用到提示框,自带的alert样式无法调整,用户体验差。
所以一般通过自定义提示框来实现弹窗提示信息,而jquery toastr正是为此的一款非常棒的插件。

在线引用

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css">

插件下载地址

https://www.jq22.com/jquery-info476

使用方式
1.引入插件
2.直接调用即可

信息:toastr.info("内容主体","标题")
警告:toastr.warning("内容主体","标题")
错误:toastr.error("内容主体","标题")
成功:toastr.success("内容主体","标题")

在这里插入图片描述

当然这也是可以自定义的

toastr.options = {
    // 关闭按钮
    "closeButton": true,
    "debug": false,
    //新的通知从上方出现
    "newestOnTop": false,
    //进度条
    "progressBar": false,
    //通知的位置
    "positionClass": "toast-top-conter",
    //重复项
    "preventDuplicates": true,
    //能否点击
    "onclick": null,
    //显示的持续时间
    "showDuration": "300",
    //隐藏的持续时间
    "hideDuration": "900",
    //显示的事件
    "timeOut": "4000",
    //延长事件
    "extendedTimeOut": "1000",
    //通知出现的形式
    "showEasing": "swing",
    "hideEasing": "linear",
    "showMethod": "slideDown",
    "hideMethod": "slideUp"
};

在这里插入图片描述

能力有限只能上部分自定义代码
https://www.cnblogs.com/webcyh/p/11348721.html 部分自定义部分代码
邮件发送

SMTP 是"简单邮件传输协议"(Simple Mail Transfer Protocol)的缩写,基于 TCP 协议,用来发送电子邮件。

1.登录qq邮箱,在首页上找到“设置”。
2.选择开启的服务,一般都全选,POP3/SMTP/IMAP,开启SMTP服务就得先开通客户授权码。

在这里插入图片描述

3.点击开通客户授权码,选择开启
4.需要手机验证码,需要绑定手机号。
5.SMTP服务需要输入客户端授权密码,这个密码就是是你在第三方客户端上的邮箱登录密码如果在第三方客户端上输入之前的邮箱登录密码就会出错。
6.设置完客户端授权密码后就成功开通了SMTP服务

在这里插入图片描述

代码部分

在你的框架内下载扩展包这里使用的是ThinkPHP6框架

composer 下载命令

composer require phpmailer/phpmailer

上代码

$toemail = '1111@163.com';//发送给谁
$mail = new PHPMailer();
$mail->isSMTP();  //使用smtp鉴权方式发送邮件
$mail->CharSet = 'utf8';   //设置编码
$mail->Host = 'smtp.qq.com';  //qq邮箱smtp邮箱
$mail->SMTPAuth = true;    //是否需要认证身份
$mail->Username = "******@qq.com";  //发送方邮箱
$mail->Password = "**********";    //发送方smtp密码
$mail->SMTPSecure = 'ssl';    //使用的协议
$mail->Port = 465;   //qq邮箱接收的端口号
$mail->setFrom('*****@qq.com', '测试');  //定义邮件及标题
$mail->addAddress($toemail, '成功了!');  //要发送的地址和设置地址的昵称
$mail->addReplyTo('******@qq.com', '没了'); //回复地址
$mail->Subject = "title!";  //添加该邮件的主题
$mail->Body = '邮件内容' //该邮件内容
//如果发送失败
if (!$mail->send()) {
    return json(['code' => 400 , 'msg'=>'邮件发送失败']);
} else {

    return json(['code' => 200 , 'msg'=>'邮件发送成功']);
}

这里就是邮件发送全过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 thinkphp6 发送邮件验证码的示例: 1. 首先,需要在 `config/mail.php` 文件中进行邮箱配置: ```php return [ // 默认发送邮件设置 'default' => [ // 邮件服务器地址 'host' => 'smtp.163.com', // 邮件服务器端口 'port' => 465, // 发件人邮箱地址 'username' => 'your_email@example.com', // 邮箱授权码,非邮箱登录密码 'password' => 'your_email_password', // 邮箱加密方式,ssl 或 tls 'secure' => 'ssl', // 默认发件人 'from' => [ 'address' => 'your_email@example.com', 'name' => 'your_name', ], ], ]; ``` 2. 然后,创建一个 `MailService` 类,用于发送邮件: ```php <?php namespace app\service; use think\facade\Cache; use think\facade\Config; use think\facade\View; use think\facade\Lang; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; class MailService { /** * 发送邮件验证码 * * @param string $email 邮箱地址 * @param string $type 验证码类型,例如 register、forget * @return boolean */ public function sendVerifyCode($email, $type) { // 生成验证码 $code = mt_rand(100000, 999999); // 邮件主题和内容 $subject = Lang::get('mail.' . $type . '_subject'); $body = View::fetch('mail/' . $type . '_body', ['code' => $code]); // 实例化 PHPMailer 对象 $mail = new PHPMailer(true); try { // 配置 SMTP 服务器 $mail->SMTPDebug = 0; // 调试:0 关闭,1 开启 $mail->isSMTP(); $mail->Host = Config::get('mail.default.host'); $mail->SMTPAuth = true; $mail->Username = Config::get('mail.default.username'); $mail->Password = Config::get('mail.default.password'); $mail->SMTPSecure = Config::get('mail.default.secure'); $mail->Port = Config::get('mail.default.port'); // 设置发件人、收件人、邮件主题、内容 $mail->setFrom(Config::get('mail.default.from.address'), Config::get('mail.default.from.name')); $mail->addAddress($email); $mail->Subject = $subject; $mail->Body = $body; // 发送邮件 $mail->send(); // 将验证码存入缓存,有效期为 5 分钟 Cache::set('verify_code:' . $email, $code, 300); return true; } catch (Exception $e) { return false; } } } ``` 3. 最后,在控制器中调用 `MailService` 类的 `sendVerifyCode` 方法即可: ```php <?php namespace app\controller; use app\service\MailService; use think\facade\Request; class UserController { /** * 发送注册验证码 * * @return json */ public function sendRegisterVerifyCode() { $email = Request::post('email'); if (!validate_email($email)) { return json(['code' => -1, 'msg' => '邮箱地址不正确']); } $mailService = new MailService(); if ($mailService->sendVerifyCode($email, 'register')) { return json(['code' => 0, 'msg' => '验证码已发送']); } else { return json(['code' => -1, 'msg' => '验证码发送失败']); } } } ``` 其中,`validate_email` 是一个自定义的函数,用于验证邮箱地址的合法性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值