TP5+PHPMailer 实现邮件验证码功能


前言

tp5+PHPMailer,使用QQ邮箱作为发送验证码的邮箱


提示:以下是本篇文章正文内容,下面案例可供参考

一、开启QQ邮箱的SMTP

QQ邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。开启。
开启SMTP

二、下载或使用composer安装PHPMailer

phpMailer 是一个非常强大的php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
安装方式查看菜鸟教程:参考链接
安装完成后可以在vendor文件夹中找到:
在这里插入图片描述

三、书写邮件代码

public function send_code_to_email($email, $code){
//        echo 'send_code_to_email';
//        vendor('PHPMailer.class#PHPMailer');
        vendor('phpmailer.PHPMailerAutoload'); // 引入
        $toemail = $email;
        $mail = new PHPMailer(); // 新建
        $mail->isSMTP();  //  开启SMTP
        $mail->CharSet = 'utf8';  // 设置编码
        $mail->Host = 'smtp.qq.com'; // SMTP服务器
        $mail->SMTPAuth = true;  // smtp需要鉴权 这个必须是true
        $mail->Username = '123456789@qq.com'; // 发信人的账号
        $mail->Password = "**********"; // 密码,非邮箱密码,是SMTP生成的密码
        $mail->From = '123456789@qq.com'; // 发信人的地址
        $mail->SMTPSecure = 'ssl';  // 采用ssl协议
        $mail->Port = 465; // 端口号
        $mail->FromName = "549项目组"; // 发件人昵称
        $mail->addAddress($toemail); // 收信人地址
        $mail->addReplyTo('123456789@qq.com');//回复的时候回复的邮箱,建议和发信人一样
        $mail->Subject = "您有新的验证码"; // 邮件主题
        $mail->Body = "您的验证码是:  ".$code."   有效期为1分钟,本邮件请勿回复!";  // 邮件内容
        if (!$mail->send()) {
            $this->return_msg(400, $mail->ErrorInfo);
        }else{
            $this->return_msg(200,'验证码已经发送成功');
        }
    }

注意:要在运行环境中开启openssl,默认开启

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用PHPMailer发送异步邮件的示例代码: ```php // 引入PHPMailer类 use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; // 异步发送邮件函数 function sendMailAsync($to, $subject, $body) { // 新建一个PHPMailer对象 $mail = new PHPMailer(true); try { // 配置SMTP服务器 $mail->isSMTP(); $mail->Host = 'smtp.example.com'; $mail->SMTPAuth = true; $mail->Username = 'username'; $mail->Password = 'password'; $mail->SMTPSecure = 'ssl'; $mail->Port = 465; // 配置邮件内容 $mail->setFrom('from@example.com', 'From Name'); $mail->addAddress($to); $mail->Subject = $subject; $mail->Body = $body; // 发送邮件 $mail->send(); return true; } catch (Exception $e) { // 发送失败,记录错误日志 error_log($e->getMessage()); return false; } } // 调用异步发送邮件函数 $to = 'recipient@example.com'; $subject = 'Test Subject'; $body = 'Test Body'; sendMailAsync($to, $subject, $body); ``` 在这个示例中,我们使用PHPMailer类来发送邮件。我们首先引入这个类,然后定义了一个`sendMailAsync`函数来异步发送邮件。该函数接受收件人地址、邮件主题和邮件正文作为参数。在函数内部,我们新建了一个PHPMailer对象,并使用SMTP服务器配置了邮件发送选项。然后,我们配置了邮件的内容,并使用`send`方法来实际发送邮件。如果发送成功,函数返回`true`,否则返回`false`并记录错误日志。最后,我们调用异步发送邮件函数来发送邮件。 请注意,这个示例中的`sendMailAsync`函数并没有使用PHP的异步机制。如果您想使用PHP的异步机制来发送邮件,您可以使用Swoole扩展或其他类似的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值