实现注册时的邮箱验证功能: - 修改注册API支持邮箱验证流程 - 新增邮箱验证API (/api/verify-email/<token>) - 新增重发验证邮件API (/api/resend-verify-email) - 新增邮箱验证状态查询API (/api/email/verify-status) 新增文件: - templates/email/register.html - 注册验证邮件模板 - templates/verify_success.html - 验证成功页面 - templates/verify_failed.html - 验证失败页面 修改文件: - email_service.py - 添加发送注册验证邮件函数 - app.py - 添加邮箱验证相关API - database.py - 添加get_user_by_email函数 - app_config.py - 添加BASE_URL配置 - templates/register.html - 支持邮箱必填切换 - templates/login.html - 添加重发验证邮件功能 - templates/admin.html - 添加注册验证开关和BASE_URL设置 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
77 lines
4.3 KiB
HTML
77 lines
4.3 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
</head>
|
||
<body style="margin: 0; padding: 0; font-family: 'Microsoft YaHei', Arial, sans-serif; background-color: #f5f5f5;">
|
||
<table width="100%" cellpadding="0" cellspacing="0" style="background-color: #f5f5f5; padding: 30px 0;">
|
||
<tr>
|
||
<td align="center">
|
||
<table width="600" cellpadding="0" cellspacing="0" style="background-color: #ffffff; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.1);">
|
||
<!-- 头部 -->
|
||
<tr>
|
||
<td style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 30px; border-radius: 10px 10px 0 0; text-align: center;">
|
||
<h1 style="color: #ffffff; margin: 0; font-size: 24px;">知识管理平台</h1>
|
||
<p style="color: rgba(255,255,255,0.9); margin: 10px 0 0 0; font-size: 14px;">账号注册验证</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<!-- 内容 -->
|
||
<tr>
|
||
<td style="padding: 40px 30px;">
|
||
<p style="color: #333; font-size: 16px; margin: 0 0 20px 0;">
|
||
您好,<strong>{{ username }}</strong>!
|
||
</p>
|
||
<p style="color: #666; font-size: 14px; line-height: 1.8; margin: 0 0 25px 0;">
|
||
感谢您注册知识管理平台。请点击下方按钮验证您的邮箱地址,完成账号激活。
|
||
</p>
|
||
|
||
<!-- 验证按钮 -->
|
||
<table width="100%" cellpadding="0" cellspacing="0">
|
||
<tr>
|
||
<td align="center" style="padding: 20px 0;">
|
||
<a href="{{ verify_url }}" style="display: inline-block; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #ffffff; text-decoration: none; padding: 15px 40px; border-radius: 30px; font-size: 16px; font-weight: bold;">
|
||
验证邮箱
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p style="color: #999; font-size: 12px; line-height: 1.8; margin: 25px 0 0 0;">
|
||
如果按钮无法点击,请复制以下链接到浏览器打开:
|
||
</p>
|
||
<p style="color: #667eea; font-size: 12px; word-break: break-all; background: #f8f9fa; padding: 15px; border-radius: 5px; margin: 10px 0;">
|
||
{{ verify_url }}
|
||
</p>
|
||
|
||
<div style="background: #fff3e0; border-left: 4px solid #ff9800; padding: 15px; margin: 25px 0; border-radius: 0 5px 5px 0;">
|
||
<p style="color: #e65100; font-size: 13px; margin: 0;">
|
||
<strong>注意:</strong>此链接有效期为 24 小时,过期后需要重新注册。
|
||
</p>
|
||
</div>
|
||
|
||
<p style="color: #999; font-size: 13px; margin: 20px 0 0 0;">
|
||
如果您没有注册过账号,请忽略此邮件。
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<!-- 底部 -->
|
||
<tr>
|
||
<td style="background: #f8f9fa; padding: 20px 30px; border-radius: 0 0 10px 10px; text-align: center;">
|
||
<p style="color: #999; font-size: 12px; margin: 0;">
|
||
此邮件由系统自动发送,请勿直接回复。
|
||
</p>
|
||
<p style="color: #ccc; font-size: 11px; margin: 10px 0 0 0;">
|
||
© 知识管理平台
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</body>
|
||
</html>
|