Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在不使用JavaMail api对端口进行硬编码的情况下连接到邮件服务器';s、 基本上,代码应该独立于端口?_Java_Jakarta Mail - Fatal编程技术网

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

是否可以在不使用JavaMail api对端口进行硬编码的情况下连接到邮件服务器';s、 基本上,代码应该独立于端口?,java,jakarta-mail,Java,Jakarta Mail,我正在开发一个应用程序,该应用程序应该能够从smtp服务器读取/获取电子邮件。问题是端口在不同的环境中可能会有所不同。是否有任何方法可以在不知道端口的情况下连接到smtp/pop(microsoft exchage)服务器。任何信息都可能有帮助,因为我对这个javamail api是新手 我认为那是不可能的。每个端口都有不同的用途 您可以做的是从外部属性文件中读取端口号,这样代码就变得与环境无关,然后您只需更改属性文件中位于已部署war/jar外部的值 这样,您的port no值就可以是特定于环

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

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

您可以做的是从外部属性文件中读取端口号,这样代码就变得与环境无关,然后您只需更改属性文件中位于已部署war/jar外部的值


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

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