diff --git a/server/proxy/service/email-hub.js b/server/proxy/service/email-hub.js index f0a8c960..4751ee1a 100644 --- a/server/proxy/service/email-hub.js +++ b/server/proxy/service/email-hub.js @@ -213,16 +213,16 @@ function logEmail(type, recipients, success, error) { function getFeedbackFooter(config) { const host = config.server_host || 'guanghulab.com'; return ` -
-
-

+


+
+

有建议或问题?欢迎反馈 👇

+ style="display: inline-block; background: linear-gradient(135deg, #667eea, #764ba2); color: white; padding: 12px 32px; border-radius: 8px; text-decoration: none; font-size: 14px; font-weight: 500; letter-spacing: 0.5px;"> 📝 提交意见反馈 -

+

每周五 20:00 铸渊集中处理 · 每周一推送处理结果

`; @@ -235,25 +235,95 @@ function wrapEmailTemplate(title, content, config) { return ` - - - -
-

🌐 光湖语言世界

-

${title}

+ + + + + + 光湖语言世界 + + + + + + + + +
`; } @@ -266,22 +336,36 @@ function generateMonthlyResetEmail(config) { const month = `${now.getFullYear()}年${now.getMonth() + 1}月`; const content = ` -
- ✅ ${month} 流量节点已重置 +
+ ✅ ${month} 流量节点已重置
-

📊 本月配额

- - - - - +

📊 本月配额

+
流量池2000 GB
已使用0 GB (已重置)
重置日期每月1日
协议VLESS + Reality
+ + + + + + + + + + + + + + + + -

- 💡 您无需任何操作,刷新订阅即可继续使用。
- 流量池为所有用户共享,请合理使用。 -

`; +
+

+ 💡 您无需任何操作,刷新订阅即可继续使用。
+ 流量池为所有用户共享,请合理使用。 +

+
`; return wrapEmailTemplate(`${month} · 流量重置通知`, content, config); } @@ -297,27 +381,29 @@ function generateUpdateNotifyEmail(description, config) { let detailHtml; if (items.length > 1) { detailHtml = ` -
    - ${items.map(item => `
  • ${escapeHtml(item)}
  • `).join('\n ')} +
      + ${items.map(item => `
    • ${escapeHtml(item)}
    • `).join('\n ')}
    `; } else { - detailHtml = `

    ${escapeHtml(description).replace(/\n/g, '
    ')}

    `; + detailHtml = `

    ${escapeHtml(description).replace(/\n/g, '
    ')}

    `; } const content = ` -
    - 🔄 系统已完成升级 +
    + 🔄 系统已完成升级
    -

    📋 本次更新内容

    -
    +

    📋 本次更新内容

    +
    ${detailHtml}
    -

    - ⏰ 更新时间: ${now}
    - 💡 大部分更新只需刷新订阅即可生效。如需重新下载订阅链接,会另行通知。 -

    `; +
    +

    + ⏰ 更新时间: ${now}
    + 💡 大部分更新只需刷新订阅即可生效。如需重新下载订阅链接,会另行通知。 +

    +
    `; return wrapEmailTemplate('系统升级通知', content, config); } @@ -332,34 +418,49 @@ function generateTrafficWarnEmail(percentage, poolStatus, config) { let urgencyColor, urgencyBg, urgencyBorder, urgencyText; if (percentage >= 100) { - urgencyColor = '#721c24'; urgencyBg = '#f8d7da'; urgencyBorder = '#f5c6cb'; + urgencyColor = '#721c24'; urgencyBg = '#fdf0f1'; urgencyBorder = '#f5c6cb'; urgencyText = '⛔ 流量池已耗尽!所有连接已暂停。'; } else if (percentage >= 90) { - urgencyColor = '#856404'; urgencyBg = '#fff3cd'; urgencyBorder = '#ffeaa7'; + urgencyColor = '#856404'; urgencyBg = '#fffbeb'; urgencyBorder = '#ffeaa7'; urgencyText = `⚠️ 流量池仅剩 ${remainGB}GB,请节约使用!`; } else { - urgencyColor = '#0c5460'; urgencyBg = '#d1ecf1'; urgencyBorder = '#bee5eb'; + urgencyColor = '#0c5460'; urgencyBg = '#e8f7fc'; urgencyBorder = '#bee5eb'; urgencyText = `📊 流量池已使用 ${percentage}%,剩余 ${remainGB}GB`; } + const barColor = percentage >= 90 ? '#dc3545' : percentage >= 70 ? '#ffc107' : '#28a745'; + const content = ` -
    - ${urgencyText} +
    + ${urgencyText}
    -

    📊 流量池状态

    - - - - - +

    📊 流量池状态

    +
    已使用${usedGB} GB
    总配额${totalGB} GB
    使用率${percentage}%
    剩余${remainGB} GB
    + + + + + + + + + + + + + + + + -
    -
    + +
    +
    -

    +

    流量池每月1日重置。所有用户共享 ${totalGB}GB 月配额。

    `; @@ -371,20 +472,20 @@ function generateTrafficWarnEmail(percentage, poolStatus, config) { // ═══════════════════════════════════════════════ function generateSecurityWarnEmail(message, config) { const content = ` -
    - 🛡️ 安全提醒 +
    + 🛡️ 安全提醒
    -
    +
    ${escapeHtml(message).replace(/\n/g, '
    ')}
    -

    💡 安全建议

    -
      -
    • 避免同时使用多个VPN客户端
    • -
    • 关闭不使用的VPN连接
    • -
    • 确保订阅链接仅个人使用
    • -
    • 如有异常,请及时反馈
    • +

      💡 安全建议

      +
        +
      • 避免同时使用多个VPN客户端
      • +
      • 关闭不使用的VPN连接
      • +
      • 确保订阅链接仅个人使用
      • +
      • 如有异常,请及时反馈
      `; return wrapEmailTemplate('安全使用提醒', content, config); @@ -395,23 +496,34 @@ function generateSecurityWarnEmail(message, config) { // ═══════════════════════════════════════════════ function generateFeedbackAckEmail(config) { const content = ` -
      - ✅ 您的反馈已收到 +
      + ✅ 您的反馈已收到
      -

      +

      感谢您的宝贵意见!铸渊将在以下时间处理:

      - - - - +
      📥 收集截止每周五 20:00
      🔍 深度分析周五晚间 (AI辅助评估)
      📤 结果推送每周一 09:00
      + + + + + + + + + + + + -

      - 注: 并非所有需求都会被采纳。铸渊会基于系统安全性、架构完整性和整体规划进行评估。 -

      `; +
      +

      + 注: 并非所有需求都会被采纳。铸渊会基于系统安全性、架构完整性和整体规划进行评估。 +

      +
      `; return wrapEmailTemplate('反馈已收到', content, config); } @@ -421,45 +533,50 @@ function generateFeedbackAckEmail(config) { // ═══════════════════════════════════════════════ function generateBandwidthAuthEmail(code, authPageUrl, config) { const content = ` -
      - 🌊 带宽共享加速 · 授权验证 +
      + 🌊 带宽共享加速 · 授权验证
      -

      +

      您正在参与光湖语言世界的带宽共享加速计划。
      如果您同意授权,请复制以下验证码并提交:

      -
      -

      您的验证码 (15分钟内有效)

      -

      ${code}

      + +
      +

      您的验证码 (15分钟内有效)

      +

      ${code}

      ${authPageUrl ? ` -
      - + + ` : ''} -
      -

      ✅ 同意授权 = 输入验证码

      -

      + +

      +

      ✅ 同意授权 = 输入验证码

      +

      您的多余带宽将用于加速VPN网络。
      用的人越多,系统越快。您自己也会享受到加速效果。

      -
      -

      ❌ 不同意 = 忽略此邮件

      -

      + +

      +

      ❌ 不同意 = 忽略此邮件

      +

      完全没问题。您可以继续正常使用VPN,只是走我们系统的带宽,
      速度可能慢一些,但也比普通VPN好太多了。

      -
      -

      + +

      +

      🔒 安全说明:本VPN是内部专用的,用户都是团队自己人。 您的IP仅用于带宽加速,系统内部加密存储,外部无法看到。 若检测到任何风险,系统会自动切断您的共享通道, @@ -476,24 +593,24 @@ function generateBandwidthAuthEmail(code, authPageUrl, config) { // ═══════════════════════════════════════════════ function generateThreatAlertEmail(message, config) { const content = ` -

      - ⚠️ 安全风险提示 +
      + ⚠️ 安全风险提示
      -
      +
      ${escapeHtml(message).replace(/\n/g, '
      ')}
      -

      🛡️ 系统已自动执行以下保护措施

      -
        -
      • 所有带宽共享通道已安全切断
      • -
      • 用户IP和共享记录已加密隔离
      • -
      • VPN基础服务不受影响,可继续正常使用
      • -
      • 系统正在自动处理风险,无需您手动操作
      • +

        🛡️ 系统已自动执行以下保护措施

        +
          +
        • 所有带宽共享通道已安全切断
        • +
        • 用户IP和共享记录已加密隔离
        • +
        • VPN基础服务不受影响,可继续正常使用
        • +
        • 系统正在自动处理风险,无需您手动操作
        -
        -

        +

        +

        💡 您只需等待系统处理完毕。危机解除后,我们会发送安全恢复通知。
        若需要重新建立连接,只需刷新订阅即可。

        @@ -507,25 +624,25 @@ function generateThreatAlertEmail(message, config) { // ═══════════════════════════════════════════════ function generateThreatClearedEmail(config) { const content = ` -
        - ✅ 安全风险已解除 +
        + ✅ 安全风险已解除
        -

        +

        光湖语言世界的安全系统已完成风险处理。
        所有服务已恢复正常运行。

        -

        📋 您需要做的

        -
        -

        +

        📋 您需要做的

        +
        +

        只需一步:打开您的VPN客户端,刷新一下订阅即可。
        您的订阅地址不变,内部节点已自动更新。

        -
        -

        +

        +

        💡 如果之前您参与了带宽共享加速计划,共享通道已被安全重置。
        如需重新参与,您可以在仪表盘页面重新授权。感谢您的理解与支持!

        @@ -860,7 +977,18 @@ async function main() { // 生成验证码 const bwPool = require('./bandwidth-pool-agent'); const authCode = bwPool.createAuthCode(arg1); - const result = await sendBandwidthAuthEmail(arg1, authCode); + + // 查找用户token以构建授权页面URL + let bwAuthPageUrl; + const bwConfig = loadConfig(); + const bwUsers = getEnabledUsers(); + const bwUser = bwUsers.find(u => u.email === arg1); + if (bwUser && bwUser.token) { + const bwHost = bwConfig.server_host || 'guanghulab.com'; + bwAuthPageUrl = `https://${bwHost}/api/proxy-v3/bandwidth-auth/${bwUser.token}`; + } + + const result = await sendBandwidthAuthEmail(arg1, authCode, bwAuthPageUrl); console.log(`📧 带宽验证码: ${result.sent}成功 / ${result.failed}失败`); break; } diff --git a/server/proxy/service/subscription-server-v3.js b/server/proxy/service/subscription-server-v3.js index 0e70b5f8..f22875f4 100644 --- a/server/proxy/service/subscription-server-v3.js +++ b/server/proxy/service/subscription-server-v3.js @@ -901,36 +901,132 @@ mode: direct + 光湖语言世界 · 带宽共享授权 @@ -950,7 +1046,7 @@ mode: direct

        🔑 输入验证码

        -

        请查看您的QQ邮箱,将收到的6位验证码输入以下框中

        +

        请查看您的QQ邮箱,将收到的6位验证码输入以下框中

        @@ -963,17 +1059,17 @@ mode: direct
        - ✅ 同意授权 = 输入验证码
        + ✅ 同意授权 = 输入验证码 您的多余带宽将用于加速VPN网络。用的人越多,系统越快。您自己也会享受到加速效果。
        - ❌ 不同意 = 关闭此页面
        + ❌ 不同意 = 关闭此页面 完全没问题。您可以继续正常使用VPN,只是走我们系统的带宽,速度可能慢一些,但也比普通VPN好太多了。无论您选择什么,都不影响正常使用。
        - 🔒 安全保障
        + 🔒 安全保障 本VPN是内部专用的,用户都是团队自己人,已经相对安全。您的IP仅用于带宽加速,系统内部加密存储。若检测到任何风险,系统会自动切断您的共享通道并格式化所有共享记录——就像这条路从未出现过。危机解除后会重新推送新的订阅链接。您的隐私安全,铸渊守护。