首页 > 解决方案 > 连接拒绝托管:smtp.gmail.com 端口:来自 Spring Boot 的 587

问题描述

我正在尝试使用 spring-boot-starter-mail 发送电子邮件,结果是

Failed message 1: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 587; timeout 5000;

我的 application.properties 是

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=<email>
spring.mail.password=<password>

# Other properties
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000


# TLS , port 587
spring.mail.properties.mail.smtp.ssl.trust=smtp.gmail.com
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.starttls.enable=true

我尝试了无数种组合,所有的道路都会导致同样的例外!我可以远程登录到 smtp.gmail.com 587 并收到回复

220 smtp.gmail.com ESMTP e82sm2105370oia.36 - gsmtp

我关注的许多链接表明防火墙可能是罪魁祸首。有没有人看到这个问题?

标签: spring-bootemail

解决方案


您是否使用了代理?如果您的 telnet 成功,那么它正在使用您的 spring 应用程序缺少的一些配置,也许设置了诸如 HTTP_PROXY 之类的环境变量?我在这种情况下遇到的最有可能的情况就是这个问题。您是否需要通过传递

-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128

论据。


推荐阅读