Я работаю над сервлетом Java, который отправляет сообщения электронной почты через SMTP, используя javax.mail (1.4.7).Мое тестовое местоположение подключено к SMTP-серверу через IPv6, а моя производственная среда - IPv4.
Не удается выполнить вход на SMTP-сервер из среды IPv6 по (второй) команде EHLO (после STARTTLS).Насколько я понимаю, в контексте IPv6 имя «localhost», указанное в EHLO, должно быть адресом IPv6 в квадратных скобках, но в контексте IPv4 следует использовать (полностью определенное) имя хоста клиента.
Я проверил обмен между моим клиентом Thunderbird и этим SMTP-сервером (используя Wireshark), и он действительно отправляет адрес IPv6 после EHLO.
Однако java-почта отправляет имя хоста после EHLO как в контексте IPv4, так и в контексте IPv6.В IPv6 это не удается.
Доступны два очевидных обходных пути: - установка свойства mail.smtp.ehlo = false - настройка свойства mail.smtp.localhost = [IPv6: xxxx: xxx: xxxx: x:xxxx: xxxx: xxxx: xxxx]
Оба эти обходных пути успешны.Однако они требуют, чтобы я использовал другую настройку / конфигурацию в зависимости от того, где работает сервлет.
Вопросы;- IPv6 EHLO еще не поддерживается в java почте?- есть ли элегантный способ подключения к IPv4 или IPv6 и соответствующей настройки?