微信小程序实现通过使用邮箱的方式发送验证码

本次实验使用的是QQ邮箱来实现发送验证码

准备工作

  • 首先使用个人账号登录网页版QQ邮箱
  • 登录后找到设置,点击设置
  • 进入设置,点击账号
  • 找到并勾选SMTP发信后保存到服务器
  • 找到管理服务并点击
  • 进到账号与安全,往下拉,找到并点击生成授权码,然后进行短信验证
  • 验证通过,生成授权码,复制授权码
  • 其次在小程序端创建一个email.js文件(文件名可以随意定义)
  • 打开cmd进入到email.js文件的目录下进行配置服务器环境
  • 通过命令npm install express --save-dev下载express
  • 通过命令npm install nodemailer --save-dev 下载nodemailer
  • 配置好环境之后,打开email.js进行编写代码

相关操作如下:

  • 点击设置
    在这里插入图片描述
  • 点击账号
    在这里插入图片描述
  • 勾选SMTP
    在这里插入图片描述
  • 点击管理服务
    在这里插入图片描述
  • 发送短信验证

相关代码如下:

  • email.js文件代码
    const express = require('express');
    const nodemailer = require('nodemailer');
    const app = express();
    const port = 6666;
    app.use(express.json());
    app.post('/sendEmailCheckCode', (req, res) => {
      const email = req.body.email;   // 对方的email
      const code = req.body.code;     // 要发送的验证码
      const transporter = nodemailer.createTransport({
    	    'host': 'smtp.qq.com',    // 主机
    	    'secureConnection': true, // 使用 SSL加密通信
    	    'service': 'qq',
    	    'port': 465,    // SMTP 端口
    	    auth: {
    	      user: '填你的邮箱',
    	      pass: '填你的授权码'   // 授权码
    	    }
      });
    
      const mailOptions = {
        from: '填你的邮箱',
        to: email,
        subject: '验证码',
        html: '<h1>【验证码】</h1><p>温馨提示,您的验证码为:<span style="color:#889bf3;text-decoration: underline;">' + code + '</span>(有效时长:3分钟),请勿泄露和转发,如非本人操作,请忽略此邮件。</p>'
      };
    
      transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
          console.error('验证码发送失败', error);
          res.status(500).json({ error: '验证码发送失败' });
        } else {
          console.log('验证码发送成功');
          res.status(200).json({ message: '验证码发送成功' });
        }
      });
    });
    app.listen(port, () => {
    	console.log(`服务器运行在 http://127.0.0.1:${port}`);
    });
    
  • 小程序端的demo.js文件
    wx.request({
       url: 'http://127.0.0.1:6666/sendEmailCheckCode',
       method: 'POST',
       data: {
       	 // 需传两个参数
         email: this.data.email, // 对方的email
         code: this.data.code    // 验证码
       },
       success(res) {
         console.log("success")
       },
       fail(err) {
         console.log("fail")
       }
    })
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值