/** * persona-studio · 邮件发送工具 * 使用 nodemailer 发送开发完成通知 */ const nodemailer = require('nodemailer'); /** * 创建邮件传输器 * 支持通过环境变量配置 SMTP */ function createTransporter() { const host = process.env.SMTP_HOST || 'smtp.qq.com'; const port = parseInt(process.env.SMTP_PORT || '465', 10); const user = process.env.SMTP_USER || ''; const pass = process.env.SMTP_PASS || ''; if (!user || !pass) { return null; } return nodemailer.createTransport({ host, port, secure: port === 465, auth: { user, pass } }); } /** * 发送邮件 */ async function send({ to, subject, body }) { const transporter = createTransporter(); if (!transporter) { console.log('[Email] SMTP not configured, skipping send to:', to); return { skipped: true, reason: 'SMTP not configured' }; } const info = await transporter.sendMail({ from: `"光湖 Persona Studio" <${process.env.SMTP_USER}>`, to, subject, html: body }); console.log('[Email] Sent:', info.messageId); return { sent: true, messageId: info.messageId }; } /** * 发送开发完成通知 */ async function sendCompletion({ to, dev_id, projectName, summary, files, downloadUrl }) { const subject = `✅ 你的模块已完成 · ${projectName}`; // 生成文件列表 let fileListHtml = ''; if (files && files.length > 0) { fileListHtml = '

📁 文件列表

'; } // 下载链接 let downloadHtml = ''; if (downloadUrl) { downloadHtml = '

📦 下载项目包

'; } const body = [ '
', '
', '

🌊 光湖 Persona Studio

', '

HoloLake Era · AGE OS · 人格语言操作系统

', '
', '
', '

你好 ' + dev_id + ',

', '

你的项目 ' + projectName + ' 已经完成开发!

', '

📋 开发摘要

', '

' + (summary || '项目代码已生成') + '

', fileListHtml, downloadHtml, '

📖 使用说明

', '
    ', '
  1. 下载项目包并解压
  2. ', '
  3. 在浏览器中打开 index.html 查看效果
  4. ', '
  5. 如需修改,用任意代码编辑器打开项目文件
  6. ', '
', '
', '
', '

', '🌀 铸渊 · 代码守护人格体 · 自动发送
', '光湖语言人格系统 · HoloLake Era · AGE OS', '

', '
', '
' ].join('\n'); return send({ to, subject, body }); } module.exports = { send, sendCompletion };