php实现给客户发送邮件email验证码的功能。
未知
2021-08-02 14:18:29
0

问题描述:

   实现给客户发送邮件的功能。

解决办法:

下载phpmailer

<script type="text/javascript">
    function getCodeByEmlForPass(){
        var usrName = $("#usrNameHid").val();
        $.ajax({
            type: "post",
            dataType: "json",
            url: "/public/home/login/sendemail",
            data: { "email": usrName},
            beforeSend: function (xhr) {
                $('#emlLink').removeAttr('onclick').css("cursor", "not-allowed");
            },
            success: function (ret) {
                console.log(ret);
                if (ret.code == "1000") {
                    startTimer('emlLink');
                    alert('验证码已经发送到您的邮箱!');
                } else {
                    $('#emlLink').attr('onclick', 'getCodeByEmlForPass()').css("cursor", "pointer");
                    alert(ret.msg);
                }
            }
        });
      
    }
</script>
php代码函数
// ajax给用户发送邮件验证码,点击【获取邮件验证码】
    public function sendEmail(){
        $recieve_email=input('email');
        //把用户邮箱、验证码和到期时间插入到表phpmail
        $data['check_code']=substr(md5(uniqid()), 0,6);
        $data['chkcode_period']=time()+600;
        $data['email']=$recieve_email;
        Db::name('phpmail')->insert($data);

        $mail=phpEmail($recieve_email,$data['check_code']);
        return json($mail);
    }

应用公共文件common.php
// 发送邮件
function phpEmail($recive_email,$code){
    Loader::import('phpmailer.phpmailer');//加载extend中的自定义类
    Loader::import('phpmailer.SMTP');//加载extend中的自定义类
    $mail = new \PHPMailer\PHPMailer(); //实例化
    header("content-type:text/html;charset=utf-8");
    // 使用SMTP方式发送
    $mail->IsSMTP();  //在本地发送成功,但是在服务器上就发送失败显示SMTP connect failed,把isSMTP去掉试试吧
    // 设置邮件的字符编码
    $mail->CharSet='UTF-8';
    // 企业邮局域名
    $mail->Host = 'smtp.exmail.qq.com';
    // $mail->Host = 'smtp.163.com';
    //---------qq邮箱需要的------//设置使用ssl加密方式登录鉴权
    $mail->SMTPSecure = 'ssl';
    //设置ssl连接smtp服务器的远程服务器端口号 可选465或587
    $mail->Port = 465;//---------qq邮箱需要的------
    // 启用SMTP验证功能
    $mail->SMTPAuth = true;
    //邮件发送人的用户名(请填写完整的email地址)
    $mail->Username = 'iola@itulan.com' ;
    // $mail->Username = 'l91.bt@163.com' ;
    // 邮件发送人的 密码 (授权码)
    $mail->Password = '5Y7eifywAvhu';  //修改为自己的授权码
    //邮件发送者email地址
    $mail->From ="i-a@itulan.com";
    //发送邮件人的标题
    $mail->FromName ="荼兰信息";
    //收件人的邮箱 给谁发邮件
    $email_addr = $recive_email;
    //收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
    $mail->AddAddress("$email_addr", substr(  $email_addr, 0 , strpos($email_addr ,'@')));
    //回复的地址
    $mail->AddReplyTo('ila@itulan.com' , "" );
    // $mail->AddAttachment("./mail.rar"); // 添加附件
    //set email format to HTML //是否使用HTML格式
    $mail->IsHTML(true);
    //邮件标题
    $mail->Subject = '找回密码验证码';
    //邮件内容
    $mail->Body =  "<p style='color:red'>" . '尊敬的客户<br>您的邮箱验证码:' .$code. ',请在10分钟内完成验证。</p>';
    //附加信息,可以省略
    $mail->AltBody = '';
    // 添加附件,并指定名称
    // $mail->AddAttachment( './error404.php' ,'php文件');
    //设置邮件中的图片
    // $mail->AddEmbeddedImage("shuai.jpg", "my-attach", "shuai.jpg");
        if( !$mail->Send() ){
            $mail_return_arr['code'] = 1001 ;
            $str  =  "邮件发送失败. <p>";
            $str .= "错误原因: " . $mail->ErrorInfo;
            $mail_return_arr['msg'] = $str ;
        }else{
            $mail_return_arr['code'] = 1000 ;
            $str =  "邮件发送成功";
            $mail_return_arr['msg'] = $str ;
        }
       return $mail_return_arr;
}

相关内容

掌握 PHP sg15:核...
本文介绍了PHP sg15的核心技术,包括面向对象编程、命名空间、...
2026-02-12 01:23:35
PHP sg15 实战教程...
PHP SG15实战教程:从基础到高级,学习PHP语言安全协议与技...
2026-02-11 01:23:35
探索 PHP sg15 在...
摘要: 本文探讨了PHP的sg15项目在Web开发中的应用,包括...
2026-02-11 01:23:34
PHP sg15 与数据库...
本文介绍了使用PHP与数据库交互的方法,特别是使用sg15框架或库...
2026-02-10 01:23:38
PHP sg15 框架集成...
本文详细介绍了如何将sg15框架集成到PHP项目中,包括准备工作、...
2026-02-10 01:23:36
PHP与YAML集成:实现...
本文介绍了PHP与YAML集成的实现方式,包括读取和写入YAML文...
2026-02-03 01:23:45

热门资讯

gatewayworker心跳... 问题描述: 前端设置什么,后端设置什么。 解决办法: start_gateway.php中 打开 $...
Oracle Oracle云服... Oracle云服务器架构设计采用虚拟化、分布式存储技术,具备高度可扩展性、高可用性和容错性,并注重安...
kali的nmap信息收集扫描... nmap这个渗透工具一般用在渗透的准备阶段,用于收集用户的信息,为后面的渗透做情报支持。
cpu指标 cpu 使用率常见指标 user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的...
phpstudy8.0 创建本... phpstudy v8.0创建本地站点域名的方法步骤: 步骤一: 打开www目录并创建你的站点文件夹...
Linux系统nginx服务器... Ssh 登录 Ssh是建立在应用层和传输层的安全协议,专门为远程登录回话和其他网络服务提供安全性。利...
Kali zenmap2020... 问题描述: Kali已经安装了也发现了nmap但是没有zenmap,我安装的2020版的。 1 | ...
SVN 从本地提交时忽略某些文... 问题描述: 在我使用TP的时候我想从本地提交文件更新到服务器,但是database.php这类的文件...
云服务器监控CPU利用率,外网... 云服务器的CPU利用率、外网出带宽使用率、内存利用率和磁盘利用率是用于监测服务器性能和资源使用情况的...
nginx服务器防火墙fire... nginx服务器防火墙firewall命令