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;
}

相关内容

MySQL变量的生命周期管...
MySQL变量管理关键在于生命周期控制。需了解全局、会话及用户自定...
2024-11-20 20:46:37
MySQL变量的作用域与访...
摘要: MySQL变量具有作用域和访问控制,局部变量限于特定上下...
2024-11-20 20:00:40
动态分配MySQL变量的示...
MySQL中,变量用于存储临时数据,包括全局和会话变量以及用户定义...
2024-11-20 18:23:38
MySQL变量存储的数据类...
MySQL支持多种数据类型以存储不同种类的变量,包括数值型、字符串...
2024-11-20 18:00:48
MySQL变量在数据库操作...
MySQL变量在数据库操作中至关重要,用于存储数据、配置操作、实现...
2024-11-20 17:46:42
K8s在云服务器上的资源管...
K8s作为开源容器编排系统,在云服务器上实现自动化资源管理,提高运...
2024-11-20 17:23:38

热门资讯

linux安装LNMP的安装方... 最近在安装linux lnmp centos7环境的时候还是有点小问题,从头总结了一下。 安装的版本...
gatewayworker心跳... 问题描述: 前端设置什么,后端设置什么。 解决办法: start_gateway.php中 打开 $...
php代码注入 ,eval() ,assert() preg_replace() call_user_func();
Linux系统nginx服务器... Ssh 登录 Ssh是建立在应用层和传输层的安全协议,专门为远程登录回话和其他网络服务提供安全性。利...
phpstudy8.0 创建本... phpstudy v8.0创建本地站点域名的方法步骤: 步骤一: 打开www目录并创建你的站点文件夹...
SVN 从本地提交时忽略某些文... 问题描述: 在我使用TP的时候我想从本地提交文件更新到服务器,但是database.php这类的文件...
测试服务器端口通不通 问题描述: 测试服务器端口通不通 解决办法: 1、使用telnet判断 telnet是windows...
云服务器监控CPU利用率,外网... 云服务器的CPU利用率、外网出带宽使用率、内存利用率和磁盘利用率是用于监测服务器性能和资源使用情况的...
nginx服务器防火墙fire... nginx服务器防火墙firewall命令
cpu指标 cpu 使用率常见指标 user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的...