使用nodeJs‘nodemailer’模块发送邮件,nodeJs邮件验证码

每个网站在做注册、登录的时候基本上都用了验证码功能,最近在学习nodeJs做一个博客网站,如果是用短信验证码的话,无疑成本高,想想做一个学习用的网站,还是选择邮件发送验证码把~~

首先,我们需要安装两个模块:

npm install nodemailer --save
npm install nodemailer-smtp-transport --save

当然你也可以不使用‘nodemailer-smtp-transport’,我这里使用了。

然后引入这两个模块:

const nodemailer = require('nodemailer')

const smtpTransport = require('nodemailer-smtp-transport')

接下来该配置了,下面贴上配置代码

const transport = nodemailer.createTransport(smtpTransport({
  host: 'smtp.sina.com', // 服务
  port: 465, // smtp端口
  // secure: true,
  secureConnection: true, // 使用 SSL
  auth: {
    user: '[email protected]', // 发件地址
    pass: '********' // 发件密码
  }
}));

const randomFns=()=> {
  return (1000 + Math.round(Math.random() * 10000 - 1000)) // 生成4位随机数
}
const regEmail=/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ //验证邮箱正则

module.exports={
  sendMailFn(req,res){
    let EMAIL=req.body.emailVal
    if (regEmail.test(EMAIL)){
      let code=[randomFns()]
      transport.sendMail({
        from: '[email protected]', // 发件邮箱
        to: EMAIL, // 收件列表
        subject: '欢迎注册8号空间', // 标题
        // text:"hello",
        html: '

你好!

感谢你注册8号空间。

你的验证码是:'+code+'

***该验证码5分钟内有效***

www.no8.space' // html 内容 }, function(error, data) { if (error) { console.error(error); } else { console.log('邮件发送成功,邮箱帐号:'+data.envelope.to); } transport.close(); // 如果没用,关闭连接池 }) console.log('发送的验证码:'+code) res.send(code) return }else { res.send('请检查邮箱!') } } }
uploadPic1495856751513.png

配置好之后,在路由里面增加一个路由,


uploadPic1495857076106.png

当用户请求‘/getVerCode.do’接口时,发送验证码,
下面是请求验证码接口的处理函数:


使用nodeJs‘nodemailer’模块发送邮件,nodeJs邮件验证码_第1张图片
uploadPic1495856968206.png

这样就能成功发送验证码啦。。。

各位多多指教!

你可能感兴趣的:(使用nodeJs‘nodemailer’模块发送邮件,nodeJs邮件验证码)