35 lines
860 B
JavaScript
35 lines
860 B
JavaScript
|
|
/**
|
|||
|
|
* persona-studio · 邮件推送路由
|
|||
|
|
* POST /api/ps/notify/send 手动触发邮件
|
|||
|
|
*/
|
|||
|
|
const express = require('express');
|
|||
|
|
const router = express.Router();
|
|||
|
|
const emailSender = require('../utils/email-sender');
|
|||
|
|
|
|||
|
|
// POST /api/ps/notify/send
|
|||
|
|
router.post('/send', async (req, res) => {
|
|||
|
|
const { to, subject, body } = req.body || {};
|
|||
|
|
|
|||
|
|
if (!to || !subject) {
|
|||
|
|
return res.status(400).json({
|
|||
|
|
error: true,
|
|||
|
|
code: 'MISSING_FIELDS',
|
|||
|
|
message: '缺少必要字段:to, subject'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
await emailSender.send({ to, subject, body: body || '' });
|
|||
|
|
res.json({ error: false, message: '邮件已发送' });
|
|||
|
|
} catch (err) {
|
|||
|
|
console.error('Notify error:', err.message);
|
|||
|
|
res.status(500).json({
|
|||
|
|
error: true,
|
|||
|
|
code: 'SEND_FAILED',
|
|||
|
|
message: '邮件发送失败'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
module.exports = router;
|