Files
AIGC/demo/TENCENT_SES_STARTUP_CHECKLIST.md

289 lines
8.1 KiB
Markdown
Raw Normal View History

# 腾讯云SES邮件服务启动检查清单
## ✅ 启动前必需准备项
### 1. 腾讯云账号和凭证 ⚠️ **必需**
#### 获取步骤:
1. **登录腾讯云控制台**
- 访问https://console.cloud.tencent.com
- 如无账号,需先注册
2. **获取API密钥**
- 访问https://console.cloud.tencent.com/cam/capi
- 创建或查看API密钥
- 获取以下信息:
```
SecretID: 例如 AKIDz8krbsJ5yKBZQpn74WFkmLPx3gnPhESA
SecretKey: 例如 Gu5t9xGARNpqDXcd3I4WZkFpAALPVZ7pKbNScfFsj
```
3. **开通SES邮件推送服务**
- 访问https://console.cloud.tencent.com/ses
- 确保服务已开通
- 查看是否有免费额度或已充值
### 2. 配置发信地址 ⚠️ **必需**
#### 配置步骤:
1. **创建发信地址**
- 在SES控制台的"发信地址"中创建
- 输入你的邮箱地址例如noreply@yourdomain.com
2. **验证发信地址**
- 腾讯云会向该邮箱发送验证邮件
- 点击邮件中的验证链接完成验证
- ⚠️ **重要**:只有验证通过的邮箱才能发送邮件
3. **记录已验证的发信地址**
- 例如:`noreply@vionow.com`
- 配置到 `application-dev.properties` 中的 `tencent.ses.from-email`
### 3. 创建邮件模板 ⚠️ **必需(生产环境)**
#### 配置步骤:
1. **访问模板管理**
- 在SES控制台的"邮件模板"中创建
2. **创建模板**
- 模板类型:选择"触发邮件"或"批量邮件"
- 模板内容示例:
```
您的验证码是:{{code}}
验证码有效期5分钟请勿泄露给他人。
如果不是您本人操作,请忽略此邮件。
```
- 在模板中使用 `{{变量名}}` 来定义可替换的变量
3. **记录模板ID**
- 创建成功后在模板列表中找到模板ID
- 例如:`12345`
- 配置到 `application-dev.properties` 中的 `tencent.ses.template-id`
### 4. 配置文件更新 ⚠️ **必需**
#### 更新 `demo/src/main/resources/application-dev.properties`
```properties
# 腾讯云SES配置
tencent.ses.secret-id=你的SecretID # ⚠️ 必须配置
tencent.ses.secret-key=你的SecretKey # ⚠️ 必须配置
tencent.ses.region=ap-beijing # 可选默认beijing
tencent.ses.from-email=已验证的发信地址 # ⚠️ 必须配置
tencent.ses.from-name=AIGC平台 # 可选
tencent.ses.template-id=0 # 0=开发模式实际模板ID=生产模式
```
#### 当前配置状态检查:
- ✅ SecretID: 已配置(`AKIDz8krbsJ5yKBZQpn74WFkmLPx3gnPhESA`
- ✅ SecretKey: 已配置
- ✅ Region: 已配置(`ap-beijing`
- ✅ From-email: 已配置(`noreply@vionow.com`
- ⚠️ Template-id: 当前为 `0`(开发模式)
### 5. Maven依赖检查 ✅ **已完成**
项目已包含腾讯云SDK依赖
```xml
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.880</version>
</dependency>
```
✅ 无需额外操作
## 📋 快速检查清单
启动前请确认:
- [ ] ✅ 腾讯云账号已注册
- [ ] ✅ 已获取SecretID和SecretKey
- [ ] ✅ 已开通SES邮件推送服务
- [ ] ✅ 已创建并验证发信地址
- [ ] ✅ 配置文件 `application-dev.properties` 已更新正确的凭证
- [ ] ✅ 发信地址已配置到 `tencent.ses.from-email`
- [ ] ⚠️ 生产环境已创建邮件模板并获取模板ID
## 🚀 启动步骤
### 方式1开发模式启动无需模板推荐先测试
**特点**
- 不需要创建邮件模板
- 不会实际发送邮件
- 验证码会在日志中显示
- 适合本地开发测试
**配置**
```properties
tencent.ses.template-id=0 # 保持为0
```
**启动**
```bash
cd demo
./mvnw spring-boot:run
# 或
mvn spring-boot:run
```
**测试**
```bash
# 调用发送验证码接口
curl -X POST http://localhost:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email":"your-email@example.com"}'
```
**查看日志**
```
WARN 未配置邮件模板ID使用开发模式。验证码: 123456, 邮箱: your-email@example.com
INFO 开发模式:邮件验证码发送到: your-email@example.com, 验证码: 123456
```
### 方式2生产模式启动需要模板
**特点**
- 实际发送邮件
- 需要配置模板ID
- 需要已验证的发信地址
**配置**
```properties
tencent.ses.template-id=你的模板ID # 例如: 12345
```
**启动**
```bash
cd demo
./mvnw spring-boot:run
```
**测试**
```bash
# 调用发送验证码接口
curl -X POST http://localhost:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email":"your-email@example.com"}'
```
**查看日志**
```
INFO 开始发送邮件,收件人: your-email@example.com, 主题: 验证码, 模板ID: 12345
INFO 邮件发送成功,收件人: your-email@example.com, 消息ID: xxx
```
## 🔍 启动后验证
### 1. 检查服务是否正常启动
```bash
# 查看启动日志,确认没有错误
# 应该看到类似信息:
# Started DemoApplication in X.XXX seconds
```
### 2. 测试邮件发送功能
```bash
# 方式1使用curl
curl -X POST http://localhost:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com"}'
# 方式2使用前端页面
# 访问注册/登录页面,输入邮箱,点击发送验证码
```
### 3. 检查日志输出
- **开发模式**:应该看到"开发模式"相关日志
- **生产模式**:应该看到"邮件发送成功"或错误信息
## ⚠️ 常见问题排查
### 问题1启动时报配置错误
```
Could not resolve placeholder 'tencent.ses.secret-id'
```
**解决**:检查 `application-dev.properties` 文件是否存在并配置了所有必需项
### 问题2发送失败 - 认证错误
```
InvalidSecretId.InvalidSignature
```
**解决**
- 检查SecretID和SecretKey是否正确
- 确认没有多余的空格或特殊字符
### 问题3发送失败 - 发信地址未验证
```
InvalidParameter.EmailAddressNotVerified
```
**解决**
- 确认发信地址已在腾讯云SES控制台验证
- 检查 `tencent.ses.from-email` 配置是否正确
### 问题4发送失败 - 模板不存在
```
ResourceNotFound.TemplateNotFound
```
**解决**
- 确认模板ID是否正确
- 检查模板是否在正确的区域创建
- 确认模板状态为"已审核通过"
### 问题5开发模式下收不到邮件
**这是正常的!**
开发模式template-id=0不会实际发送邮件只会在日志中显示验证码。
## 📝 当前配置状态
根据 `application-dev.properties`
| 配置项 | 状态 | 说明 |
|--------|------|------|
| SecretID | ✅ 已配置 | 需要确认是否正确 |
| SecretKey | ✅ 已配置 | 需要确认是否正确 |
| Region | ✅ 已配置 | ap-beijing |
| From-email | ✅ 已配置 | noreply@vionow.com |
| Template-id | ⚠️ 开发模式 | 当前为0如需实际发送需配置模板ID |
## 🎯 推荐启动流程
### 第一步:开发模式测试(推荐先做)
1. ✅ 确保SecretID和SecretKey已配置
2. ✅ 确保from-email已配置即使未验证也可先测试
3. ✅ 保持template-id=0
4. ✅ 启动服务
5. ✅ 测试发送验证码接口
6. ✅ 查看日志确认功能正常
### 第二步:配置真实发送(如需要)
1. ✅ 在腾讯云SES控制台验证发信地址
2. ✅ 创建邮件模板并获取模板ID
3. ✅ 更新template-id配置
4. ✅ 重启服务
5. ✅ 测试实际发送邮件
## 📚 参考资源
- 腾讯云SES控制台https://console.cloud.tencent.com/ses
- API密钥管理https://console.cloud.tencent.com/cam/capi
- 腾讯云SES文档https://cloud.tencent.com/document/product/1288
## ✅ 总结
**最小启动要求**
1. ✅ SecretID和SecretKey已配置
2. ✅ From-email地址已配置需确认已验证
3. ✅ Template-id=0开发模式已配置
**当前状态****可以直接启动**(开发模式)
如果需要实际发送邮件,需要:
- 验证发信地址
- 创建邮件模板并配置template-id