- 所有笔记/收藏/回收站各自展示专属主页(统计、列表、操作入口) - 新增邮箱绑定、找回密码、个人中心功能 - 新增管理员路由与后台组件 - AI 模型设置、登录弹窗、侧边栏交互优化 - 修复懒加载、cloudEnabled 刷新、验证码冷却等 bug Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.7 KiB
TypeScript
44 lines
1.7 KiB
TypeScript
import nodemailer from 'nodemailer'
|
||
|
||
function createTransporter() {
|
||
return nodemailer.createTransport({
|
||
host: 'smtp.126.com',
|
||
port: 465,
|
||
secure: true,
|
||
auth: {
|
||
user: 'mikivl@126.com',
|
||
pass: process.env.EMAIL_PASS!,
|
||
},
|
||
})
|
||
}
|
||
|
||
export async function sendVerifyCode(to: string, code: string) {
|
||
await createTransporter().sendMail({
|
||
from: '"MikiVL 笔记" <mikivl@126.com>',
|
||
to,
|
||
subject: '邮箱验证码',
|
||
text: `你的验证码是:${code},10 分钟内有效。`,
|
||
html: `<p style="font-family:sans-serif">你的验证码是:<strong style="font-size:1.2em;letter-spacing:0.1em">${code}</strong>,10 分钟内有效。</p>`,
|
||
})
|
||
}
|
||
|
||
export async function sendResetCode(to: string, code: string) {
|
||
await createTransporter().sendMail({
|
||
from: '"MikiVL 笔记" <mikivl@126.com>',
|
||
to,
|
||
subject: '重置密码验证码',
|
||
text: `你的重置密码验证码是:${code},10 分钟内有效。如非本人操作请忽略。`,
|
||
html: `<p style="font-family:sans-serif">你的重置密码验证码是:<strong style="font-size:1.2em;letter-spacing:0.1em">${code}</strong>,10 分钟内有效。如非本人操作请忽略。</p>`,
|
||
})
|
||
}
|
||
|
||
export async function sendRegisterCode(to: string, code: string) {
|
||
await createTransporter().sendMail({
|
||
from: '"MikiVL 笔记" <mikivl@126.com>',
|
||
to,
|
||
subject: '注册验证码',
|
||
text: `你的注册验证码是:${code},10 分钟内有效。如非本人操作请忽略。`,
|
||
html: `<p style="font-family:sans-serif">你的注册验证码是:<strong style="font-size:1.2em;letter-spacing:0.1em">${code}</strong>,10 分钟内有效。如非本人操作请忽略。</p>`,
|
||
})
|
||
}
|