import nodemailer from 'nodemailer' import config from './config/index.js' import * as log4js from './log4js.js' const transporter = nodemailer.createTransport({ host: config.mail.host, port: config.mail.port, secure: config.mail.secure, auth: { user: config.mail.from, pass: config.mail.password, }, }) /** * 发送验证码邮件 * @param {string} to 收件人邮箱 * @param {string} account 游戏账号 * @param {string} code 验证码 * @param {number} type 1=注册 2=找回密码 */ export async function sendCodeMail(to, account, code, type) { const typeNames = { 1: '注册', 2: '找回密码' } const typeName = typeNames[type] || '验证' const subject = `【${config.game.name}】${typeName}` const html = `

${subject}

您的${config.account.name}${config.account.nameSuffix}:${account}

您的验证码:${code}

用于${typeName}验证,5分钟内有效。


${config.game.name}  ·  ${config.game.description}

` try { await transporter.sendMail({ from: `"${config.game.name}" <${config.mail.from}>`, to, subject, html, }) log4js.koa.info(`验证码邮件发送成功 -> ${to}`) return true } catch (err) { log4js.koa.error(`验证码邮件发送失败 -> ${to}`, err.message) return false } }