Files
chuanqi-qycq-web/module/server/mail.js
艾贤凌 6d4a72161f inint
2026-03-16 12:05:55 +08:00

52 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 = `
<div style="background:#000;padding:50px;min-height:300px;">
<div style="background:rgba(0,0,0,.7);border-radius:6px;color:#fff;padding:25px;max-width:450px;">
<h3>${subject}</h3>
<p>您的${config.account.name}${config.account.nameSuffix}<strong>${account}</strong></p>
<p>您的验证码:<span style="font-weight:700;font-size:18px;text-decoration:underline;color:#f5bd10;">${code}</span></p>
<p style="color:#aaa;">用于${typeName}验证5分钟内有效。</p>
<hr style="border-color:#333;"/>
<p style="font-size:12px;color:#666;">${config.game.name} &nbsp;·&nbsp; ${config.game.description}</p>
</div>
</div>
`
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
}
}