You must download mail from the corporate mailbox. I tried using both IMAP and POP3 - the same exception always occurs. In this case, the login and password are correct. For some reason this error always arises. The latest version is 1.5.6

I am confused specifically this line

`DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 NO Uncorrect mailHost "XXXX" for mailbox userName` 

Since XXXX is a slightly different address. If instead of XXXX there was mail.outlook.com , then the error on the XXXX site is worth email.outlook.com

Stack trace:

 DEBUG: setDebug: JavaMail version 1.5.6 DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle] DEBUG IMAP: mail.imap.fetchsize: 16384 DEBUG IMAP: mail.imap.ignorebodystructuresize: false DEBUG IMAP: mail.imap.statuscachetimeout: 1000 DEBUG IMAP: mail.imap.appendbuffersize: -1 DEBUG IMAP: mail.imap.minidletime: 10 DEBUG IMAP: closeFoldersOnStoreFailure DEBUG IMAP: trying to connect to host "XXX", port 143, isSSL false * OK IMAP4 ready A0 CAPABILITY * CAPABILITY IMAP4rev1 UIDPLUS AUTH=PLAIN STARTTLS A0 OK completed DEBUG IMAP: AUTH: PLAIN DEBUG IMAP: protocolConnect login, host="XXX", user=userName, password=<non-null> DEBUG IMAP: AUTHENTICATE PLAIN command trace suppressed DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 NO Uncorrect mailHost "XXXX" for mailbox userName Exception in thread "main" javax.mail.AuthenticationFailedException: Uncorrect mailHost "XXXX" for mailbox userName at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:725) at javax.mail.Service.connect(Service.java:366) at javax.mail.Service.connect(Service.java:246) at javax.mail.Service.connect(Service.java:195) at main.Folders.main(Folders.java:108) 

I start the run from the demo example

 import java.util.Properties; import javax.mail.*; import com.sun.mail.imap.*; /** * Demo app that exercises the Message interfaces. * List information about folders. * * @author John Mani * @author Bill Shannon */ public class folderlist { static String protocol = null; static String host = null; static String user = null; static String password = null; static String url = null; static String root = null; static String pattern = "%"; static boolean recursive = false; static boolean verbose = false; static boolean debug = false; public static void main(String argv[]) throws Exception { int optind; for (optind = 0; optind < argv.length; optind++) { if (argv[optind].equals("-T")) { protocol = argv[++optind]; } else if (argv[optind].equals("-H")) { host = argv[++optind]; } else if (argv[optind].equals("-U")) { user = argv[++optind]; } else if (argv[optind].equals("-P")) { password = argv[++optind]; } else if (argv[optind].equals("-L")) { url = argv[++optind]; } else if (argv[optind].equals("-R")) { root = argv[++optind]; } else if (argv[optind].equals("-r")) { recursive = true; } else if (argv[optind].equals("-v")) { verbose = true; } else if (argv[optind].equals("-D")) { debug = true; } else if (argv[optind].equals("--")) { optind++; break; } else if (argv[optind].startsWith("-")) { System.out.println( "Usage: folderlist [-T protocol] [-H host] [-U user] [-P password] [-L url]"); System.out.println( "\t[-R root] [-r] [-v] [-D] [pattern]"); System.exit(1); } else { break; } } if (optind < argv.length) pattern = argv[optind]; // Get a Properties object Properties props = System.getProperties(); // Get a Session object Session session = Session.getInstance(props, null); session.setDebug(debug); // Get a Store object Store store = null; Folder rf = null; if (url != null) { URLName urln = new URLName(url); store = session.getStore(urln); store.connect(); } else { if (protocol != null) store = session.getStore(protocol); else store = session.getStore(); // Connect if (host != null || user != null || password != null) store.connect(host, user, password); else store.connect(); } // List namespace if (root != null) rf = store.getFolder(root); else rf = store.getDefaultFolder(); dumpFolder(rf, false, ""); if ((rf.getType() & Folder.HOLDS_FOLDERS) != 0) { Folder[] f = rf.list(pattern); for (int i = 0; i < f.length; i++) dumpFolder(f[i], recursive, " "); } store.close(); } static void dumpFolder(Folder folder, boolean recurse, String tab) throws Exception { System.out.println(tab + "Name: " + folder.getName()); System.out.println(tab + "Full Name: " + folder.getFullName()); System.out.println(tab + "URL: " + folder.getURLName()); if (verbose) { if (!folder.isSubscribed()) System.out.println(tab + "Not Subscribed"); if ((folder.getType() & Folder.HOLDS_MESSAGES) != 0) { if (folder.hasNewMessages()) System.out.println(tab + "Has New Messages"); System.out.println(tab + "Total Messages: " + folder.getMessageCount()); System.out.println(tab + "New Messages: " + folder.getNewMessageCount()); System.out.println(tab + "Unread Messages: " + folder.getUnreadMessageCount()); } if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0) System.out.println(tab + "Is Directory"); /* * Demonstrate use of IMAP folder attributes * returned by the IMAP LIST response. */ if (folder instanceof IMAPFolder) { IMAPFolder f = (IMAPFolder)folder; String[] attrs = f.getAttributes(); if (attrs != null && attrs.length > 0) { System.out.println(tab + "IMAP Attributes:"); for (int i = 0; i < attrs.length; i++) System.out.println(tab + " " + attrs[i]); } } } System.out.println(); if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0) { if (recurse) { Folder[] f = folder.list(); for (int i = 0; i < f.length; i++) dumpFolder(f[i], recurse, tab + " "); } } } } 

    0