Я отправляю почту через JavaMail к почтовому серверу на локальном хосте, порт 25. Мой почтовый_сервер связывается с IP4 только, т.е. он связывается с 127.0.0.1:25
, но не [::]:25
.JavaMail и IP4 против IP6
С JavaMail 2.5.1 и JDK 1.7.0_45 Я могу заставить это работать, если я установил свойство системы java.net.preferIPv4Stack=true
.
Вопросы:
Почему мне нужно установить системное свойство? Я имею в виду, почему это не его достаточно в JavaMail, чтобы установить мой целевой хост как
127.0.0.1
, а не , чемlocalhost
. Я бы предположил, что использование явного адреса IP4 будет достаточным, чтобы сказать Java, что я хочу использовать соединение IP4 ?Хорошо, допустим, мне действительно нужно, что системное свойство. Я внутри сервера J2EE , и я действительно не хочу связываться с другими арендаторами на тем же сервером J2EE. Если я установлю его программным способом в своем коде, как в
System.setProperty("java.net.preferIPv4Stack","true")
, он повлияет на других арендаторов на сервере J2EE?Что я действительно хочу сделать, так это убедиться, что только это SMTP-соединение использует IP4. В приложении есть много других TCP-соединений, которые не связаны с SMTP. Я не хочу ограничивать использование IP4. Есть ли способ, которым я могу это достичь?
Grazie.