是否可以使用 JavaMail api's 在不对端口进行硬编码的情况下连接到邮件服务器,基本上代码应该独立于端口。 ?

Is it possible to connect to a mail server without hard coding the port using JavaMail api's, basically the code should be independent of ports. ?

我正在开发一个应用程序,该应用程序应该能够 read/fetch 来自 smtp 服务器的电子邮件。问题是端口在不同的环境中可能会有所不同。有什么方法可以在不知道端口的情况下连接到 smtp/pop (microsoft exchage) 服务器。任何信息都可能有帮助,因为我是这个 javamail api 的新手。

我认为那不可能。每个端口都有不同的用途。

你可以做的是从外部 属性 文件中读取你的端口号,这样你的代码就变得独立于环境,然后你只需要更改 属性 文件中的值放置在您部署的 war/jar

之外

这样,您的 port no 值可以是特定于环境的,而无需更改您的代码。

这些服务有标准端口,JavaMail 默认使用这些端口。其中一项服务使用非标准端口的情况相对较少。但是您确实需要知道该服务是否需要 SSL,并且有两个用于 SMTP 的标准端口。您可以轻松编写尝试所有常见端口的代码,并且您可能会涵盖 99.99% 的情况。