美文网首页
使用nodeJs‘nodemailer’模块发送邮件,nodeJ

使用nodeJs‘nodemailer’模块发送邮件,nodeJ

作者: eks | 来源:发表于2018-04-11 09:48 被阅读353次

    每个网站在做注册、登录的时候基本上都用了验证码功能,最近在学习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: 'shua1125@sina.com', // 发件地址
        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: 'shua1125@sina.com', // 发件邮箱
            to: EMAIL, // 收件列表
            subject: '欢迎注册8号空间', // 标题
            // text:"hello",
            html: '<p>你好!</p><p>感谢你注册8号空间。</p><p>你的验证码是:<strong style="color: #ff4e2a;">'+code+'</strong></p><p>***该验证码5分钟内有效***</p><a href="http://www.no8.space">www.no8.space</a>' // 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’接口时,发送验证码,
    下面是请求验证码接口的处理函数:


    uploadPic1495856968206.png

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

    各位多多指教!

    相关文章

      网友评论

          本文标题:使用nodeJs‘nodemailer’模块发送邮件,nodeJ

          本文链接:https://www.haomeiwen.com/subject/rxcahftx.html