nodejs实现发送验证码到qq邮箱(附有源码)

来源:互联网 发布:windows手机壁纸 编辑:程序博客网 时间:2024/05/22 08:00

HTML内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
    <style>
        body,*{
            margin:0px auto;
            padding:0px;
            font-family:"微软雅黑";
        }
        fieldset{
            width:50%;
        }
        label{
            display:inline-block;
            width:200px;
            text-align:right;
        }
        ul{
            list-style:none;
        }
        li{
            line-height:30px;
        }
    </style>
    <script src="js/jquery-1.12.4.js" type="text/javascript"></script>
    <script src="js/email.js"></script>
</head>
<body>
    <form action="/adduser" method="post">
        邮箱:
        <input type="text" name="eml" id="eml" size="40" onblur="check(this)"/>
        验证码:
        <input type="text" name="tel" id="elma"/>
        <input type="button" id="getemails" value="获取验证码" onclick="getemail()"/>
    </form>
</body>
</html>


Javascript内容

function check(obj){
    var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/g;//邮箱验证
    if(reg.test($(obj).val())){
        $(obj).css("border-color","green");
        return true;
    }else{
        $(obj).css("border-color","red");
        return false;
    }
}
function getemail(){
    $("#getemails").attr("disabled",true);
    if(check($("#eml"))){
        var eml= $.trim($("#eml").val());
        $.post("/getlma",{eml:eml},function(data){
            data= $.trim(data);
            if(data=="2"){
                $("#getemails").val("邮件发送成功,点击重新获取").attr("disabled",false);
            }else{
                $("#getemails").val("邮件发送失败,点击再次发送").attr("disabled",false);
            }
        },"text");
    }else{
        return;
    }
}


nodejs内容

var nodemailer=require("nodemailer");
var express=require("express");
var session=require("express-session");
var bodyparser=require("body-parser");
var app=express();


app.use(bodyparser.urlencoded({extend:false}));


app.use(session({
    secret: 'keyboard cat',
    resave: true,
    saveUninitialized: true,
    cookie: {secure:false,maxAge:1000*60*20}
}));


var transporter=nodemailer.createTransport({//邮件传输
    host:"smtp.qq.com", //qq smtp服务器地址
    secureConnection:false, //是否使用安全连接,对https协议的
    port:465, //qq邮件服务所占用的端口
    auth:{
        user:"1137211995@qq.com",//开启SMTP的邮箱,有用发送邮件
    pass:"xifynvwbujdkigia"//授权码
}
});


app.post("/getlma",function(req,res){ //调用指定的邮箱给用户发送邮件
        var code="";
        while(code.length<5){
            code+=Math.floor(Math.random()*10);
        }
        var mailOption={
            from:"1137211995@qq.com",
            to:req.body.eml,//收件人
            subject:"XX注册校验码",//纯文本
            html:"<h1>欢迎注册XX系统,您本次的注册验证码为:"+code+"</h1>"
        };


        transporter.sendMail(mailOption,function(error,info){
            if(error){
                res.send("1");
                return console.info(error);
            }else{
                req.session.yanzhengma=code;
                res.send("2");
                console.info("Message send"+code);
            }
        })

})


app.use(express.static(__dirname));


app.listen(8082,function(err){
    if(err){
        console.info(err);
    }else{
        console.info("服务器开启成功。。。");
    }
})

0 0
原创粉丝点击