本次实验使用的是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") } })