【问题标题】:Java mail client can't reach SMTP server from Docker containerJava 邮件客户端无法从 Docker 容器访问 SMTP 服务器
【发布时间】:2019-05-20 00:07:14
【问题描述】:

我创建了发送电子邮件的简单 Java 应用程序。当我从我的 IDE 运行它时它工作正常,但是在 Docker 容器中运行它时它无法访问远程 SMTP 服务器。我正在使用

docker run -d -p 25:25 [image]:[tag]

在启动容器时暴露端口 25。有谁知道为什么邮件客户端无法连接?

【问题讨论】:

    标签: spring docker jakarta-mail


    【解决方案1】:

    我认为您混淆了端口映射的要点。这是为了允许主机将给定网络接口上的指定端口绑定到容器中的端口。在您的情况下,您正在尝试连接到我假设在另一台远程主机上的端口 25。

    如果应用程序在 IDE 中运行时可以正常工作,我会假设解决 SMTP 服务器的问题或 SMTP 服务器正在侦听的地址存在问题。

    您是在本地运行 SMTP 服务器还是连接到可通过公共 DNS 解析的服务器?如果使用docker exec 进入正在运行的容器,可以telnet 到SMTP 服务器吗?

    【讨论】:

    • 我正在使用DNS“smtp.gmail.com”,这是否意味着它无法解析DNS?我必须以某种方式配置 docker 容器吗?
    • 我认为你不需要做任何特别的事情来允许这个。我有点茫然地解释为什么这在容器内不起作用,除非有某种类型的防火墙阻止容器将端口 25 上的出站连接到smtp.gmail.com。您是否有有关连接问题的更多详细信息,例如堆栈跟踪?
    猜你喜欢
    • 2014-07-16
    • 1970-01-01
    • 2020-09-19
    • 2013-12-27
    • 2021-01-25
    • 1970-01-01
    • 2021-10-10
    • 2018-04-20
    • 1970-01-01
    相关资源
    最近更新 更多