Использование JavaMail с TLS

brew install ffmpeg установит то, что вам нужно, и все зависимости, если вы находитесь на Mac.

46
задан dancavallaro 4 January 2009 в 17:28
поделиться

2 ответа

У нас на самом деле есть некоторый код уведомления в нашем продукте, который использует TLS для отправки почты, если это доступно.

необходимо будет установить свойства Java Mail. Вам только нужен TLS один, но Вам, возможно, понадобился бы SSL, если Ваш сервер SMTP использует SSL.

Properties props = new Properties();
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.auth", "true");  // If you need to authenticate
// Use the following if you need SSL
props.put("mail.smtp.socketFactory.port", d_port);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");

можно тогда или передать это Сессии JavaMail или любой другой сессии instantiator как Session.getDefaultInstance(props).

62
ответ дан George Brighton 8 November 2019 в 00:01
поделиться

Хорошее сообщение, строка

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

обязательна, если сервер SMTP использует , аутентификация SSL , как сервер SMTP Gmail делает. Однако, если сервер использует Аутентификация Простого текста по TLS, это не должно присутствовать, потому что Почта Java будет жаловаться на начальное соединение, являющееся простым текстом.

Также удостоверяются, что Вы используете последнюю версию Почты Java. Недавно я использовал некоторые старые Почтовые банки Java из предыдущего проекта и не мог заставить код работать, потому что процесс входа в систему перестал работать. После того, как я обновил до последней версии Почты Java, причина ошибки стала ясной: это был javax.net.ssl. SSLHandshakeException, который не был подброшен в старой версии lib.

24
ответ дан 8 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: