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