页面显示邮件发送成功,但邮箱未收到
SQLe Version main
Describe the bug 页面显示邮件发送成功,但邮箱未收到
To Reproduce
-
配置系统设置的SMTP,关闭启用邮件推送

-
点击测试

-
测试邮箱未收到邮件
Expected behavior 邮箱收到邮件
Suggestion 测试邮件发送功能是否正常,应该与 是否启用邮件推送 无关
我有同样的问题,web前端相应error -> dial tcp: i/o timeout
为什么页面显示邮件发送成功,但邮箱未收到?
https://github.com/actiontech/sqle/blob/b18aee43a7b8c1d89138e86cb1f037ebfe7cc62f/sqle/notification/email.go#L19
发送邮件方法,如果SMTP未配置或者未开启邮件通知,错误返回值是nil。因为错误返回值是nil,所以外层接口会走到邮件发送成功分支,但实际上邮件未发送
https://github.com/actiontech/sqle/blob/b18aee43a7b8c1d89138e86cb1f037ebfe7cc62f/sqle/api/controller/v1/configuration.go#L139。
此处前端关于判断是否连接正常的逻辑也有问题(具体原因略过)
修改方案
- SMTP未配置或者未开启邮件通知返回错误,而不是nil。https://github.com/actiontech/sqle/blob/b18aee43a7b8c1d89138e86cb1f037ebfe7cc62f/sqle/notification/email.go#L19
但是会影响审核任务通知(如果用户未配置通知邮箱,不应该返回错误,因为用户可能就不想被通知) 3. 邮箱测试接口增加单独的检测逻辑,如果用户未配置通知邮箱或未开启通知按钮,直接返回到前端
复现版本: UI Version: release-1.2209.x 604e0ac Server Version: release-1.2209.x-ee 3f8ad37ce4 复现步骤: 1.在系统设置中填写smtp相关参数 2.然后关闭smtp功能 3.然后使用测试功能,往另一个邮箱发送测试邮件 4.实际另一个邮箱没有收到邮件

验证版本: UI Version: main 9ad6f1b Server Version: main-ee e4e5da233a 验证步骤: 1.在系统设置中填写smtp相关参数 2.然后关闭smtp功能 3.然后使用测试功能,往另一个邮箱发送测试邮件 4.界面提示stmp功能没有开启
