String username = args[1];
String password = args[2];
String proto = (args.length > 3) ? args[3] : null;
IMAPClient imap;
if (proto != null) {
System.out.println("Using secure protocol: " + proto);
imap = new IMAPSClient(proto, true); // implicit
// enable the next line to only check if the server certificate has expired (does not check chain):
// ((IMAPSClient) imap).setTrustManager(TrustManagerUtils.getValidateServerCertificateTrustManager());
// OR enable the next line if the server uses a self-signed certificate (no checks)
// ((IMAPSClient) imap).setTrustManager(TrustManagerUtils.getAcceptAllTrustManager());
} else {
imap = new IMAPClient();
}
System.out.println("Connecting to server " + server + " on " + imap.getDefaultPort());
// We want to timeout if a response takes longer than 60 seconds
imap.setDefaultTimeout(60000);
// suppress login details
imap.addProtocolCommandListener(new PrintCommandListener(System.out, true));
try
{
imap.connect(server);
}
catch (IOException e)
{
throw new RuntimeException("Could not connect to server.", e);
}
try
{
if (!imap.login(username, password))
{
System.err.println("Could not login to server. Check password.");
imap.disconnect();
System.exit(3);
}
imap.setSoTimeout(6000);
imap.capability();
imap.select("inbox");
imap.examine("inbox");
imap.status("inbox", new String[]{"MESSAGES"});
imap.logout();
imap.disconnect();
}
catch (IOException e)
{
System.out.println(imap.getReplyString());
e.printStackTrace();
System.exit(10);
return;
}
}