优化邮件发送功能和支付宝支付诊断
- 修复邮件服务区域配置(改为ap-hongkong) - 增强支付宝支付错误诊断和日志 - 修复代码质量问题(OrderService、ImageToVideoTask) - 添加支付宝支付问题排查文档 - 增加详细的错误诊断信息
This commit is contained in:
206
demo/EMAIL_SEND_TROUBLESHOOTING.md
Normal file
206
demo/EMAIL_SEND_TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,206 @@
|
||||
# 邮件发送问题诊断指南
|
||||
|
||||
## 🔍 问题分析
|
||||
|
||||
根据你提供的日志,发现了以下情况:
|
||||
|
||||
### 日志分析
|
||||
|
||||
**你的日志显示:**
|
||||
```
|
||||
INFO ... VerificationCodeService : 邮件验证码发送成功,邮箱: 984523799@qq.com
|
||||
```
|
||||
|
||||
**但是缺少以下关键日志:**
|
||||
- ❌ 没有看到 "当前邮件模板ID配置: xxx"
|
||||
- ❌ 没有看到 "未配置邮件模板ID,使用开发模式"(开发模式警告)
|
||||
- ❌ 没有看到 "使用生产模式发送邮件"(生产模式日志)
|
||||
- ❌ 没有看到 "开始发送邮件,收件人: ..."(TencentSesMailService日志)
|
||||
|
||||
### 可能的原因
|
||||
|
||||
1. **配置值未正确读取**
|
||||
- `template-id=154360` 可能没有被正确读取
|
||||
- 默认值 `0` 被使用,进入了开发模式
|
||||
- 但开发模式的警告日志也没有出现
|
||||
|
||||
2. **服务使用旧版本代码**
|
||||
- 可能运行的jar包是旧版本
|
||||
- 需要重新编译并启动
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 诊断步骤
|
||||
|
||||
### 步骤1:检查配置是否正确读取
|
||||
|
||||
我已经更新了代码,添加了更详细的日志。请:
|
||||
|
||||
1. **重新编译项目**
|
||||
```bash
|
||||
cd demo
|
||||
mvn clean package
|
||||
```
|
||||
|
||||
2. **重新启动服务**
|
||||
```bash
|
||||
java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
|
||||
```
|
||||
|
||||
3. **再次测试发送验证码**
|
||||
|
||||
4. **查看新的日志输出**,应该能看到:
|
||||
```
|
||||
INFO ... VerificationCodeService : 当前邮件模板ID配置: 154360
|
||||
INFO ... VerificationCodeService : 使用生产模式发送邮件,收件人: xxx@qq.com, 模板ID: 154360
|
||||
INFO ... TencentSesMailService : 开始发送邮件,收件人: xxx@qq.com, 主题: 验证码, 模板ID: 154360
|
||||
```
|
||||
|
||||
### 步骤2:检查配置文件
|
||||
|
||||
确认 `application-dev.properties` 中的配置:
|
||||
|
||||
```properties
|
||||
tencent.ses.template-id=154360
|
||||
```
|
||||
|
||||
**注意:**
|
||||
- 确保没有空格
|
||||
- 确保值是正确的数字
|
||||
- 确保配置文件被正确加载(使用 `--spring.profiles.active=dev`)
|
||||
|
||||
### 步骤3:检查日志输出
|
||||
|
||||
**如果看到:**
|
||||
```
|
||||
INFO 当前邮件模板ID配置: 0
|
||||
WARN 未配置邮件模板ID,使用开发模式
|
||||
```
|
||||
|
||||
**说明:** 配置值没有正确读取,使用的是默认值0。
|
||||
|
||||
**解决方案:**
|
||||
1. 检查配置文件路径
|
||||
2. 确认使用的是dev配置:`--spring.profiles.active=dev`
|
||||
3. 检查配置文件名是否正确
|
||||
|
||||
**如果看到:**
|
||||
```
|
||||
INFO 当前邮件模板ID配置: 154360
|
||||
INFO 使用生产模式发送邮件,收件人: xxx@qq.com, 模板ID: 154360
|
||||
INFO 开始发送邮件,收件人: xxx@qq.com, 主题: 验证码, 模板ID: 154360
|
||||
ERROR 邮件验证码发送失败,邮箱: xxx@qq.com
|
||||
```
|
||||
|
||||
**说明:** 配置正确,但邮件发送失败。
|
||||
|
||||
**常见错误:**
|
||||
|
||||
1. **发信地址未验证**
|
||||
```
|
||||
InvalidParameter.EmailAddressNotVerified
|
||||
```
|
||||
**解决:** 在腾讯云SES控制台验证 `newletter@vionow.com`
|
||||
|
||||
2. **模板ID不存在或未审核**
|
||||
```
|
||||
ResourceNotFound.TemplateNotFound
|
||||
```
|
||||
**解决:** 确认模板ID 154360 已审核通过
|
||||
|
||||
3. **权限不足**
|
||||
```
|
||||
InvalidSecretId.InvalidSignature
|
||||
```
|
||||
**解决:** 检查SecretID/SecretKey是否正确,是否有SES服务权限
|
||||
|
||||
4. **额度不足**
|
||||
```
|
||||
余额不足
|
||||
```
|
||||
**解决:** 充值或检查免费额度
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速测试方案
|
||||
|
||||
### 方案1:临时使用开发模式测试
|
||||
|
||||
如果发信地址未验证或需要快速测试登录功能,可以临时切换到开发模式:
|
||||
|
||||
1. **修改配置文件**
|
||||
```properties
|
||||
tencent.ses.template-id=0
|
||||
```
|
||||
|
||||
2. **重新编译并启动**
|
||||
```bash
|
||||
mvn clean package
|
||||
java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
|
||||
```
|
||||
|
||||
3. **测试发送验证码**
|
||||
- 会看到日志:`开发模式:邮件验证码发送到: xxx@qq.com, 验证码: 123456`
|
||||
- 从日志中获取验证码用于登录测试
|
||||
|
||||
### 方案2:检查SES配置状态
|
||||
|
||||
1. **访问SES控制台**
|
||||
- 发信地址管理:https://console.cloud.tencent.com/ses/address
|
||||
- 邮件模板管理:https://console.cloud.tencent.com/ses/template
|
||||
|
||||
2. **确认以下状态:**
|
||||
- [ ] `newletter@vionow.com` 状态为"已验证"
|
||||
- [ ] 模板ID `154360` 状态为"已审核"
|
||||
- [ ] SES服务有可用额度
|
||||
|
||||
---
|
||||
|
||||
## 📝 诊断检查清单
|
||||
|
||||
请按照以下顺序检查:
|
||||
|
||||
- [ ] **1. 配置检查**
|
||||
- 配置文件 `application-dev.properties` 中存在 `tencent.ses.template-id=154360`
|
||||
- 没有多余空格或特殊字符
|
||||
|
||||
- [ ] **2. 编译检查**
|
||||
- 执行了 `mvn clean package`
|
||||
- 编译成功,没有错误
|
||||
|
||||
- [ ] **3. 启动检查**
|
||||
- 使用 `--spring.profiles.active=dev` 启动
|
||||
- 启动日志中没有配置相关的错误
|
||||
|
||||
- [ ] **4. 日志检查**
|
||||
- 重新启动后,测试发送验证码
|
||||
- 查看日志中是否有新的详细信息
|
||||
|
||||
- [ ] **5. SES配置检查**
|
||||
- 发信地址已验证
|
||||
- 模板ID已审核
|
||||
- 有可用额度
|
||||
|
||||
---
|
||||
|
||||
## 🔧 下一步操作
|
||||
|
||||
1. **立即执行:**
|
||||
```bash
|
||||
cd demo
|
||||
mvn clean package
|
||||
java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
|
||||
```
|
||||
|
||||
2. **再次测试发送验证码**
|
||||
|
||||
3. **查看新的日志输出**,告诉我你看到了什么日志信息
|
||||
|
||||
4. **根据新的日志信息,我可以进一步帮你诊断问题**
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 重要提示
|
||||
|
||||
**当前代码已更新,添加了更详细的日志输出。请重新编译并启动服务,然后再次测试。新的日志会帮助我们准确定位问题。**
|
||||
|
||||
Reference in New Issue
Block a user