Grafana Docker镜像无法发送密码重置邮件,该如何排查解决?
问题原因排查方向
- 全局SMTP密码配置缺失:你Dockerfile中配置的
GF_SMTP_PASSWORD为空值,通知通道的测试邮件可以使用你在页面中单独配置的SMTP密码发送,但密码重置功能调用的是Grafana全局SMTP配置,空密码会导致实际发送请求被Gmail拒绝,前端仅做了触发成功提示不会校验后端发送结果。你本地运行的Grafana大概率是在配置文件中填写了正确的SMTP密码,所以可以正常发送。 - 重置链接域名/端口异常触发反垃圾规则:你没有配置
GF_SERVER_ROOT_URL环境变量,Grafana默认会用容器内部服务地址生成密码重置链接,链接中会出现localhost:3000或者容器内部hostname,Gmail的反垃圾机制会判定这类包含本地地址的邮件为垃圾邮件,直接拒收或者归类到垃圾邮件/其他分类中,不会出现在收件箱。本地运行时默认生成的链接和实际访问地址一致,不会触发反垃圾规则。 - 容器时间与标准时间不一致:如果容器的系统时间和实际时间偏差超过1小时,Gmail会判定邮件时间异常直接拒收,本地运行时使用宿主系统时间不会出现该问题。
- 发件地址合法性校验未通过:你配置的发件地址
admin@grafana.localhost属于无真实解析的内网域名,容器运行时Gmail对发件地址的校验策略更严格,会拒绝接收这类地址发出的非测试类邮件。
临时验证方法
- 执行
docker logs grafan查看容器运行日志,定位点击发送重置密码邮件后是否存在SMTP发送报错信息 - 检查Gmail的垃圾邮件、已删除邮件、促销/社交分类中是否有被拦截的重置邮件
- 先测试在Dockerfile中填入正确的
GF_SMTP_PASSWORD重新构建镜像启动,验证是否可以收到邮件
内容的提问来源于stack exchange,提问作者Hans
相关产品推荐
相关产品推荐

