- 实现邮箱验证码登录功能,支持自动注册新用户 - 修复验证码生成逻辑,确保前后端验证码一致 - 添加腾讯云SES webhook回调接口,支持6种邮件事件 - 配置ngrok内网穿透支持,允许外部访问 - 优化登录页面UI,采用全屏背景和居中布局 - 清理调试代码和未使用的导入 - 添加完整的配置文档和测试脚本
5.1 KiB
5.1 KiB
腾讯云邮件推送服务(SES)配置指南
🎯 配置目标
配置腾讯云SES服务,实现真实的邮件验证码发送功能。
📋 详细配置步骤
1. 开通腾讯云SES服务
1.1 登录腾讯云控制台
- 访问:https://console.cloud.tencent.com/
- 使用您的腾讯云账号登录
1.2 开通邮件推送服务
- 在控制台搜索"邮件推送"或"SES"
- 进入邮件推送控制台
- 点击"立即开通"
- 完成实名认证(如需要)
2. 获取API密钥
2.1 创建API密钥
- 控制台 → 访问管理 → API密钥管理
- 点击"新建密钥"
- 记录以下信息:
- SecretId:如
AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - SecretKey:如
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- SecretId:如
3. 配置发件人邮箱
3.1 添加发件人
- 邮件推送控制台 → 发件人管理
- 点击"添加发件人"
- 填写信息:
- 发件人邮箱:如
noreply@yourdomain.com - 发件人名称:如
AIGC Demo
- 发件人邮箱:如
- 点击"确定"
3.2 验证发件人
- 系统会向您的邮箱发送验证邮件
- 点击邮件中的验证链接
- 验证成功后,发件人状态变为"已验证"
4. 修改配置文件
编辑 src/main/resources/application-tencent.properties:
# 腾讯云配置
tencent.cloud.secret-id=AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
tencent.cloud.secret-key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 邮件推送服务配置
tencent.cloud.ses.region=ap-beijing
tencent.cloud.ses.from-email=noreply@yourdomain.com
tencent.cloud.ses.from-name=AIGC Demo
tencent.cloud.ses.template-id=your-email-template-id
5. 配置邮件模板(可选)
5.1 创建邮件模板
- 邮件推送控制台 → 邮件模板
- 点击"创建模板"
- 选择"验证码模板"
- 填写模板内容:
模板名称:验证码邮件 模板内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>验证码</title>
</head>
<body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333;">
<div style="max-width: 600px; margin: 0 auto; padding: 20px;">
<h2 style="color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px;">
验证码
</h2>
<p>您好!</p>
<p>您的验证码是:<strong style="color: #e74c3c; font-size: 24px;">{{code}}</strong></p>
<p>请在5分钟内输入,如非本人操作,请忽略此邮件。</p>
<hr style="border: none; border-top: 1px solid #eee; margin: 20px 0;">
<p style="color: #7f8c8d; font-size: 12px;">
此邮件由系统自动发送,请勿回复。
</p>
</div>
</body>
</html>
5.2 获取模板ID
- 模板创建成功后,记录模板ID
- 更新配置文件中的
tencent.cloud.ses.template-id
6. 启用腾讯云配置
6.1 修改主配置文件
编辑 src/main/resources/application.properties:
# 启用腾讯云配置
spring.profiles.active=tencent
6.2 修改验证码服务
取消注释 VerificationCodeService.java 中的腾讯云相关代码:
@Autowired
private TencentCloudConfig tencentCloudConfig;
7. 测试配置
7.1 启动应用
mvn spring-boot:run
7.2 测试发送验证码
curl -X POST http://api.yourdomain.com:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email": "your-test-email@example.com"}'
7.3 检查邮件
- 查看您的邮箱是否收到验证码邮件
- 检查应用日志中的发送状态
🔧 配置参数说明
| 参数 | 说明 | 示例值 |
|---|---|---|
secret-id |
腾讯云API密钥ID | AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
secret-key |
腾讯云API密钥 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
ses.region |
服务地域 | ap-beijing |
ses.from-email |
发件人邮箱 | noreply@yourdomain.com |
ses.from-name |
发件人名称 | AIGC Demo |
ses.template-id |
邮件模板ID | 123456 |
🚨 注意事项
安全提醒
- 保护API密钥:不要将SecretId和SecretKey提交到代码仓库
- 使用环境变量:生产环境建议使用环境变量存储敏感信息
- 限制权限:为API密钥设置最小权限
费用说明
- 免费额度:腾讯云SES通常有免费额度
- 计费方式:按发送量计费
- 成本控制:设置发送频率限制
限制说明
- 发送频率:同一邮箱60秒内只能发送一次
- 验证码有效期:5分钟
- 每日限额:根据您的套餐设置
🔍 故障排除
常见问题
1. 邮件发送失败
- 检查API密钥是否正确
- 检查发件人是否已验证
- 检查网络连接
2. 验证码收不到
- 检查垃圾邮件文件夹
- 检查邮箱地址是否正确
- 检查发送频率限制
3. 配置不生效
- 检查配置文件路径
- 检查profile配置
- 重启应用
日志查看
# 查看应用日志
tail -f logs/application.log | grep "验证码"