192 lines
5.1 KiB
Markdown
192 lines
5.1 KiB
Markdown
|
|
# 腾讯云邮件推送服务(SES)配置指南
|
|||
|
|
|
|||
|
|
## 🎯 配置目标
|
|||
|
|
|
|||
|
|
配置腾讯云SES服务,实现真实的邮件验证码发送功能。
|
|||
|
|
|
|||
|
|
## 📋 详细配置步骤
|
|||
|
|
|
|||
|
|
### 1. 开通腾讯云SES服务
|
|||
|
|
|
|||
|
|
#### 1.1 登录腾讯云控制台
|
|||
|
|
- 访问:https://console.cloud.tencent.com/
|
|||
|
|
- 使用您的腾讯云账号登录
|
|||
|
|
|
|||
|
|
#### 1.2 开通邮件推送服务
|
|||
|
|
1. 在控制台搜索"邮件推送"或"SES"
|
|||
|
|
2. 进入邮件推送控制台
|
|||
|
|
3. 点击"立即开通"
|
|||
|
|
4. 完成实名认证(如需要)
|
|||
|
|
|
|||
|
|
### 2. 获取API密钥
|
|||
|
|
|
|||
|
|
#### 2.1 创建API密钥
|
|||
|
|
1. 控制台 → 访问管理 → API密钥管理
|
|||
|
|
2. 点击"新建密钥"
|
|||
|
|
3. 记录以下信息:
|
|||
|
|
- **SecretId**:如 `AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
|||
|
|
- **SecretKey**:如 `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
|||
|
|
|
|||
|
|
### 3. 配置发件人邮箱
|
|||
|
|
|
|||
|
|
#### 3.1 添加发件人
|
|||
|
|
1. 邮件推送控制台 → 发件人管理
|
|||
|
|
2. 点击"添加发件人"
|
|||
|
|
3. 填写信息:
|
|||
|
|
- **发件人邮箱**:如 `noreply@yourdomain.com`
|
|||
|
|
- **发件人名称**:如 `AIGC Demo`
|
|||
|
|
4. 点击"确定"
|
|||
|
|
|
|||
|
|
#### 3.2 验证发件人
|
|||
|
|
1. 系统会向您的邮箱发送验证邮件
|
|||
|
|
2. 点击邮件中的验证链接
|
|||
|
|
3. 验证成功后,发件人状态变为"已验证"
|
|||
|
|
|
|||
|
|
### 4. 修改配置文件
|
|||
|
|
|
|||
|
|
编辑 `src/main/resources/application-tencent.properties`:
|
|||
|
|
|
|||
|
|
```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 创建邮件模板
|
|||
|
|
1. 邮件推送控制台 → 邮件模板
|
|||
|
|
2. 点击"创建模板"
|
|||
|
|
3. 选择"验证码模板"
|
|||
|
|
4. 填写模板内容:
|
|||
|
|
|
|||
|
|
**模板名称**:验证码邮件
|
|||
|
|
**模板内容**:
|
|||
|
|
```html
|
|||
|
|
<!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`:
|
|||
|
|
|
|||
|
|
```properties
|
|||
|
|
# 启用腾讯云配置
|
|||
|
|
spring.profiles.active=tencent
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 6.2 修改验证码服务
|
|||
|
|
取消注释 `VerificationCodeService.java` 中的腾讯云相关代码:
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
@Autowired
|
|||
|
|
private TencentCloudConfig tencentCloudConfig;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 7. 测试配置
|
|||
|
|
|
|||
|
|
#### 7.1 启动应用
|
|||
|
|
```bash
|
|||
|
|
mvn spring-boot:run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 7.2 测试发送验证码
|
|||
|
|
```bash
|
|||
|
|
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` |
|
|||
|
|
|
|||
|
|
## 🚨 注意事项
|
|||
|
|
|
|||
|
|
### 安全提醒
|
|||
|
|
1. **保护API密钥**:不要将SecretId和SecretKey提交到代码仓库
|
|||
|
|
2. **使用环境变量**:生产环境建议使用环境变量存储敏感信息
|
|||
|
|
3. **限制权限**:为API密钥设置最小权限
|
|||
|
|
|
|||
|
|
### 费用说明
|
|||
|
|
1. **免费额度**:腾讯云SES通常有免费额度
|
|||
|
|
2. **计费方式**:按发送量计费
|
|||
|
|
3. **成本控制**:设置发送频率限制
|
|||
|
|
|
|||
|
|
### 限制说明
|
|||
|
|
1. **发送频率**:同一邮箱60秒内只能发送一次
|
|||
|
|
2. **验证码有效期**:5分钟
|
|||
|
|
3. **每日限额**:根据您的套餐设置
|
|||
|
|
|
|||
|
|
## 🔍 故障排除
|
|||
|
|
|
|||
|
|
### 常见问题
|
|||
|
|
|
|||
|
|
#### 1. 邮件发送失败
|
|||
|
|
- 检查API密钥是否正确
|
|||
|
|
- 检查发件人是否已验证
|
|||
|
|
- 检查网络连接
|
|||
|
|
|
|||
|
|
#### 2. 验证码收不到
|
|||
|
|
- 检查垃圾邮件文件夹
|
|||
|
|
- 检查邮箱地址是否正确
|
|||
|
|
- 检查发送频率限制
|
|||
|
|
|
|||
|
|
#### 3. 配置不生效
|
|||
|
|
- 检查配置文件路径
|
|||
|
|
- 检查profile配置
|
|||
|
|
- 重启应用
|
|||
|
|
|
|||
|
|
### 日志查看
|
|||
|
|
```bash
|
|||
|
|
# 查看应用日志
|
|||
|
|
tail -f logs/application.log | grep "验证码"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📞 技术支持
|
|||
|
|
|
|||
|
|
- 腾讯云SES文档:https://cloud.tencent.com/document/product/1288
|
|||
|
|
- 腾讯云技术支持:https://cloud.tencent.com/about/connect
|