Парадокс при отправке письма через GUI

Имеется десктопное приложение https://github.com/mrprogre/news_lite в котором результат поиска можно отправить на электронную почту (настраиваем адрес отправителя в конфигах, у меня gmail). Однако обнаружился интересный баг, что когда нажимаешь кнопку "Отправить" в GUI, то письмо не уходит и появляется вот такая ошибка:

Could not convert socket to TLS
javax.net.ssl.SSLHandshakeException: 
No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

Суть парадокса в том, что если открыть jar не двойным кликом по ярылку, а через консоль Windows PowerShell или консоль linux - открывается GUI и при нажатии на эту же кнопку письмо отправится без ошибок.

Сrontab линукса, запуская данную отправку (в приложении есть доп. консольная версия без gui), производит её без ошибок.

Также при запуске приложения в Intellij Idea письмо из GUI отправляется без вышеуказанной ошибки. Кто сталкивался - помогите! Вот код отправщика:

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class Sender {
private final Properties p = new Properties();

public void send(String subject, String text, String fromEmail, 
                 String pwd, String toEmail) throws MessagingException {
    String host = Common.getSmtp();
    p.put("mail.store.protocol", "imaps");
    p.put("mail.smtp.auth", "true");
    p.put("mail.smtp.starttls.enable", "true");
    p.put("mail.smtp.host", host);
    p.put("mail.smtp.port", "587");


    Session session = Session.getDefaultInstance(p, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(fromEmail, pwd);
        }
    });
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(fromEmail));
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
    message.setSubject(subject);
    message.setText(text);
    Transport.send(message);
  }
}

Отправку вызываю так:

Sender sender = new Sender();
sender.send(subject, text.toString(), from, from_pwd, to);

Скачать jar и проверить мой случай можно по ссылке: https://github.com/mrprogre/news_lite/raw/master/News.jar


Ответы (0 шт):