From 9c398e64100c2d4e2f5941bdbe09cae9e71cff96 Mon Sep 17 00:00:00 2001 From: h4erj Date: Wed, 24 Jun 2026 14:42:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=9C=AA=E5=8F=91=E9=80=81=E7=9A=84=E5=BE=85?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api-server.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/api-server.js b/api-server.js index 8391bd1..6fe03a3 100644 --- a/api-server.js +++ b/api-server.js @@ -114,9 +114,13 @@ function sendResendMail(to, subject, html) { const req = https.request(opts, res => { let b = ''; res.on('data', c => b += c); - res.on('end', () => { try { resolve(JSON.parse(b)); } catch (_) { resolve(b); } }); + res.on('end', () => { + try { const j = JSON.parse(b); resolve(j); } + catch (_) { resolve({ raw: b }); } + }); }); req.on('error', reject); + req.setTimeout(30000, () => { req.destroy(); reject(new Error('Resend API 超时')); }); req.write(data); req.end(); }); @@ -169,5 +173,12 @@ server.listen(PORT, () => { console.log(`API server running on port ${PORT}`); if (!RESEND_KEY) console.log('⚠ RESEND_KEY 未设置,邮件功能不可用。请在 Render Environment 中添加。'); if (!MAIL_TO) console.log('⚠ MAIL_TO 未设置,邮件功能不可用。请在 Render Environment 中添加。'); - if (RESEND_KEY && MAIL_TO) console.log(`✅ 有表单提交后 ${SUMMARY_INTERVAL / 60000} 分钟发送汇总邮件至 ${MAIL_TO}`); + if (RESEND_KEY && MAIL_TO) { + console.log(`✅ 有表单提交后 ${SUMMARY_INTERVAL / 60000} 分钟发送汇总邮件至 ${MAIL_TO}`); + const pending = readMessages().filter(m => !m.notified); + if (pending.length > 0) { + console.log(`检测到 ${pending.length} 条未发送的待处理消息,启动汇总定时器`); + scheduleSummary(); + } + } });