首页 > 解决方案 > 我无法从 OVH 托管 Kubernetes 集群访问 smtp.gmail.com 587

问题描述

Spring Mail serviceSpring-boot应用程序中使用向我的用户发送邮件。

此配置在我的本地主机上 完美运行:

## Mail configuration
mail:
 host: smtp.gmail.com
 port: 587
 username: myemail@gmail.com  
 password: app_password 
 protocol: smtp
 tls: true
 properties.mail.smtp:
  auth: true
  starttls.enable: true
  ssl.trust: smtp.gmail.com

但是,当我在 OVH 托管 Kubernetes 集群上部署应用程序时,它无法成功访问邮件服务器。它失败了connection timeout error

当我在我的本地主机上尝试telnet smtp.gmail.com 587时,它可以工作,

但这些是从集群中的容器进行的连接测试的结果:

ping smtp.gmail.com ===> Works

telnet smtp.gmail.com 587 
   Trying xx.xxx.xxx.109...
   Connection failed: Connection timed out
   Trying xxxx:xxxx:xxxx:xxx::6c...
   telnet: Unable to connect to remote host: Cannot assign requested address

这让我认为这是一个隐式防火墙规则,它阻止来自集群的出站流量。

但是有人告诉我,他对同一地区的同一集群提供者使用相同的参数并且它正在工作。

与他的唯一区别是,我没有使用 Gmail 地址密码并允许安全性较低的应用程序Google 设置,而是使用google 推荐的应用程序密码

您是否认为 Gmail 会在不通知我的情况下阻止来自服务器的传入请求?

这与我使用应用程序密码有关吗?(就像本地主机上的魅力一样)

这是一个与ovh相关的问题吗?

谢谢你的帮助。

标签: spring-bootemailkubernetesovh

解决方案


默认情况下,OVH 在其公共云产品上可能会阻止传出的 SMTP / SUBMISSION 端口。我的两个项目就是这种情况。

您可能需要联系他们以让他们允许您的公共云项目访问 SMTP 端口。


推荐阅读