Как ответил Андерсен, соединение SSL (mail.smtp.ssl.enable=true
) с портом, отличным от SSL, выдает эту ошибку.
Обычно это вызвано подключением к неправильному порту, поскольку многие популярные почтовые службы используют порт 587 вместо порта 465 smtps по умолчанию.
Это относится к GMail , Hotmail / Live Mail и Yahoo Mail .
Однако моя проблема заключается в том, что Java Mail настаивает на использовании SSL, даже если для ssl установлено значение false.
После отслеживания исходного кода проблема заключается в том, что я использовал Session.getDefaultInstance
, скопированный из некоторого примера кода.
Он только создает сеанс с данными свойствами при первом вызове; вызовы подпоследовательности вернут этот старый сеанс вместо нового сеанса.
Переключение на Session.getInstance
убедитесь, что оно использует свойства, которые я передаю, и решило мое «SSLException: Нераспознанное сообщение SSL».