var nodemailer; try { nodemailer = require('nodemailer'); } catch (err) {} module.exports = { /** * 发送邮箱验证码 * @url user/pub/sendEmailCode 前端调用的url参数地址 * @description 发送邮箱验证码 * data 请求参数 说明 * @param {String} email 邮箱 * @param {String} type 验证码类型 * res 返回参数说明 * @param {Number} code 错误码,0表示成功 * @param {String} msg 详细信息 * @param {String} email 手机号 * @param {String} verifyCode 验证码 */ main: async (event) => { let { data = {}, util } = event; let { uniID, config } = util; let { email, type } = data; let res = {code : -1, msg : ''}; // 业务逻辑开始----------------------------------------------------------- const randomStr = '00000' + Math.floor(Math.random() * 1000000); let code = randomStr.substring(randomStr.length - 6); let param = { code, type, email }; // 发送验证码开始 var emailConfig = config.vk.service.email; if(typeof nodemailer === "undefined"){ return { code : -1, msg : '请先安装npm包"nodemailer": "^6.4.11"' }; } let emailService = nodemailer.createTransport({ "host": emailConfig[data.serviceType].host, "port": emailConfig[data.serviceType].port, "secure": emailConfig[data.serviceType].secure, // use SSL "auth": emailConfig[data.serviceType].auth }); try{ await emailService.sendMail({ "from": emailConfig[data.serviceType].auth.user, "to": data.email, "subject": data.subject, "text": `您的验证码是${code},打死也不要告诉别人哦!` }); res.code = 0; res.msg = "ok"; } catch(err){ res.code = -1; res.msg = "邮件发送失败"; res.err = err; } // 发送验证码结束 if(res.code === 0){ // 发送验证码成功后,设置验证码 await uniID.setVerifyCode(param); } // 业务逻辑结束----------------------------------------------------------- return res; } }