Utilisation Javamail pour l'accès aux boîtes aux lettres Microsoft Exchange (IMAP, MS Exchange)
J'ai besoin de vous connecter à un Serveur Microsoft Exchange par le biais de IMAPS JavaMail. Tout d'abord, j'ai eu l':
A1 NO AUTHENTICATE failed.
javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
exception dans mon débogueur.
Ensuite, j'ai désactivé certains protocoles d'authentification:
imapProps.setProperty("mail.imaps.auth.plain.disable", "true");
imapProps.setProperty("mail.imaps.auth.ntlm.disable", "true");
imapProps.setProperty("mail.imaps.auth.gssapi.disable", "true");
C'est la nouvelle exception, je suis (j'ai joint l'ensemble du journal):
DEBUG: setDebug: JavaMail version 1.4.4
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc]
DEBUG: mail.imap.fetchsize: 16384
DEBUG: mail.imap.statuscachetimeout: 1000
DEBUG: mail.imap.appendbuffersize: -1
DEBUG: mail.imap.minidletime: 10
DEBUG: disable AUTH=PLAIN
DEBUG: disable AUTH=NTLM
DEBUG: enable STARTTLS
DEBUG: trying to connect to host "host.domain.com", port 993, isSSL true
* OK The Microsoft Exchange IMAP4 service is ready.
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY completed.
DEBUG IMAP: AUTH: NTLM
DEBUG IMAP: AUTH: GSSAPI
DEBUG IMAP: AUTH: PLAIN
DEBUG: protocolConnect login, host=host.domain.com, user=user@domain.com, password=<non-null>
A1 LOGIN user@domain.com password
A1 NO LOGIN failed.
DEBUG: trying to connect to host "host.domain.com", port 993, isSSL true
* OK The Microsoft Exchange IMAP4 service is ready.
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY completed.
DEBUG IMAP: AUTH: NTLM
DEBUG IMAP: AUTH: GSSAPI
DEBUG IMAP: AUTH: PLAIN
DEBUG: protocolConnect login, host=host.domain.com, user=user@domain.com, password=<non-null>
A1 LOGIN user@domain.com password
A1 NO LOGIN failed.
javax.mail.AuthenticationFailedException: LOGIN failed.
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:660)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at ConnectMail.connectMail(ConnectMail.java:63)
at Main.main(Main.java:9)
Maintenant, je suis pas le "PAS de CONNEXION a échoué" Exception.
C'est mon code complet:
Properties imapProps = new Properties();
imapProps.setProperty("mail.imaps.socketFactory.port", "993");
imapProps.setProperty("mail.imaps.starttls.enable", "true");
imapProps.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
imapProps.setProperty("mail.imaps.socketFactory.fallback", "false");
imapProps.setProperty("mail.imaps.auth.plain.disable", "true");
imapProps.setProperty("mail.imaps.auth.ntlm.disable", "true");
imapProps.setProperty("mail.imaps.auth.gssapi.disable", "true");
imapProps.setProperty("username", "[email protected]");
imapProps.setProperty("password", "password");
String host = "host.domain.com";
int port = Integer.parseInt("993");
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]", "password");
}
};
session = Session.getInstance(imapProps, authenticator);
session.setDebug(true);
Store store = session.getStore("imaps");
store.connect(host, "[email protected]", "password");
Votre code est absolument correcte (peut-être que certaines lignes ne sont pas nécessaires à tous les authentificateur exemple parce que vous êtes en utilisant le nom d'utilisateur et mot de passe dans votre connectez - mais ne vous inquiétez pas), il travaille au sein de notre environnement exchange. Yo besoin de parler à votre Échange SysAdmin parce que le problème doit venir de ce côté.
Désolé pour le retard de mise à jour. Oui, ce code était correct. Le problème était avec le Serveur Exchange. Ce code est correct si quelqu'un est de la planification de l'utiliser..
Pouvez-vous décrire le problème que votre Serveur Exchange a avoir lorsque vous avez reçu ce message d'erreur. Merci!
C'était simple, on m'a donné de mauvaises informations d'identification. @ClickerTweeker
Désolé pour le retard de mise à jour. Oui, ce code était correct. Le problème était avec le Serveur Exchange. Ce code est correct si quelqu'un est de la planification de l'utiliser..
Pouvez-vous décrire le problème que votre Serveur Exchange a avoir lorsque vous avez reçu ce message d'erreur. Merci!
C'était simple, on m'a donné de mauvaises informations d'identification. @ClickerTweeker
OriginalL'auteur Dilanga Thalpegama | 2013-11-19
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser une version plus récente de JavaMail qui prend en charge l'authentification NTLM. La dernière version est 1.5.1.
Aussi, consultez cette liste de erreurs les plus courantes.
OriginalL'auteur Bill Shannon
Il sera d'entraînement si le nom d'utilisateur et le mail de l'id les deux sont les mêmes.
Par exemple: système de nom d'utilisateur est john et mail id [email protected]
IMAP est d'essayer de vous connecter au mail id à l'aide du nom d'utilisateur "john" de l'[email protected] si l'id d'utilisateur est diffèrent, il ne sera pas de connexion.
OriginalL'auteur user10512315
Essayez d'utiliser votre propre Authentificateur
et dans votre code ajouter
OriginalL'auteur Sandhu Santhakumar