Я столкнулся с чем-то тревожным. Я настраиваю получателя POP-аккаунта, и похоже, что он работает в некоторых случаях. Когда я подключаюсь к своему серверу через порт 110, он работает нормально (просто появляется сообщение об ошибке при попытке подключения по SSL, что нормально).
Но когда я пытаюсь использовать порт 995, который должен работать с SSL, похоже, что javax.mail (1.4.3) блокируется при выполнении команды input.readLine () (помечена как устаревшая, BTW) вместо того, чтобы выдавать IOException он должен бросить ...
Я собираюсь добавить тайм-аут, чтобы предотвратить это, но хотел бы узнать ваше мнение по этому поводу. Кто-то уже испытал это? Есть идеи, как с этим справиться?
Вот как я создаю свой объект Store:
Properties pop3Props = new Properties();
pop3Props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
pop3Props.setProperty("mail.pop3.port", Integer.toString(hostPort));
pop3Props.setProperty("mail.pop3.socketFactory.port", Integer.toString(hostPort));
pop3Props.setProperty("mail.pop3.starttls.enable", String.valueOf(STARTTLS));
pop3Props.setProperty("mail.pop3.auth", String.valueOf(AUTH));
// Create session and URL
Session session = Session.getInstance(pop3Props, null);
session.setDebug(true);
URLName url = new URLName(POP3, host, hostPort, "", username, password);
// Create the store
if (useSSL) {
return new POP3SSLStore(session, url);
} else {
return new POP3Store(session, url);
}
Вот как я пытаюсь подключиться к этому объекту:
store.connect(host, hostPort, username, password);
И это строка javax.mail, которая останавливает все (оригинальный комментарий включен):
String line = input.readLine(); // XXX - readLine is deprecated
Большое спасибо за вашу помощь!
Morgan