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

相关内容

XXX技术解析
本文详细解析了XXX技术的定义、特点、应用及发展趋势。该技术具有高...
2025-02-13 01:23:39
有影院靠《哪吒2》7天赚了...
《哪吒2》上映七天创下影院高收益奇迹,吸引观众热议和业界高度评价。...
2025-02-10 06:46:40
国产剧终于有不靠男主救的女...
国产剧新趋势:女主角不再依赖男主救援,展现独立与坚强。打破传统模式...
2025-02-10 05:46:37
网络木马攻击中的隐藏技术及...
本文详述了网络木马攻击中的伪装、加密、进程注入与隐藏等技术手段及其...
2025-02-10 04:23:42
网络木马攻击中的钓鱼欺诈手...
本文详述了网络木马攻击中的钓鱼欺诈手段,包括邮件钓鱼、社交工程钓鱼...
2025-02-10 03:46:41
剖析网络木马攻击的技术原理...
本文深入剖析了网络木马攻击的技术原理与攻击方式,包括其隐藏性、伪装...
2025-02-10 03:00:40

热门资讯

gatewayworker心跳... 问题描述: 前端设置什么,后端设置什么。 解决办法: start_gateway.php中 打开 $...
Oracle Oracle云服... Oracle云服务器架构设计采用虚拟化、分布式存储技术,具备高度可扩展性、高可用性和容错性,并注重安...
kali的nmap信息收集扫描... nmap这个渗透工具一般用在渗透的准备阶段,用于收集用户的信息,为后面的渗透做情报支持。
phpstudy8.0 创建本... phpstudy v8.0创建本地站点域名的方法步骤: 步骤一: 打开www目录并创建你的站点文件夹...
Linux系统nginx服务器... Ssh 登录 Ssh是建立在应用层和传输层的安全协议,专门为远程登录回话和其他网络服务提供安全性。利...
SVN 从本地提交时忽略某些文... 问题描述: 在我使用TP的时候我想从本地提交文件更新到服务器,但是database.php这类的文件...
linux安装LNMP的安装方... 最近在安装linux lnmp centos7环境的时候还是有点小问题,从头总结了一下。 安装的版本...
php代码注入 ,eval() ,assert() preg_replace() call_user_func();
云服务器监控CPU利用率,外网... 云服务器的CPU利用率、外网出带宽使用率、内存利用率和磁盘利用率是用于监测服务器性能和资源使用情况的...
测试服务器端口通不通 问题描述: 测试服务器端口通不通 解决办法: 1、使用telnet判断 telnet是windows...