Kiedy loguję się tylko raz na skrzynkę (korzystając z Javamail) wszystko jest OK - wiadomości są sczytywane.
Napisałem jednak kod, który umożliwia się zalogować i jeżeli to logowanie się nie powiedzie (bo hasło (trzymane w zmiennej password) było blednę), program próbuje się jeszcze raz zalogować używając innego, już na pewno dobrego hasła (trzymane w zmiennej password_decrypted), to przy drugiej próbie logowania program nie łączy się ze skrzynką i wyrzuca wyjątki. Oto ten kod:
server = new URLName("imap://" + login + "@imap." + host + ":" + password + "@imap." + host + "/INBOX");
session = Session.getDefaultInstance(new Properties(), new MailAuthenticator(login, password));
try {
folder = (IMAPFolder)session.getFolder(server);
} catch (MessagingException e1) {
// TODO Auto-generated catch block
//e1.printStackTrace();
}
if (folder == null) // jezeli logowanie sie przy pomocy pierwszego hasla sie nie powiodlo
{
System.out.println("Logowanie sie nie powiodlo");
server = new URLName("imap://" + login + "@imap." + host + ":" + password_decrypted + "@imap." + host + "/INBOX");
session = Session.getDefaultInstance(new Properties(), new MailAuthenticator(login, password_decrypted));
try {
folder = (IMAPFolder)session.getFolder(server);
} catch (MessagingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
folder.open(Folder.READ_ONLY);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Wygląda na to, że gdy już raz program spróbuje się zalogować, to ma problem z ponownym zalogowaniem się. Tak jakby coś było blokowane? Może trzeba jakoś zamknąć sesję?