0
votes

javax.mail.authenticationFaileDException: [auth] Login Web requis

Je construis une application à l'aide de Java pour lire des courriels. Et cela fonctionnait sans aucune erreur. Mais tout à coup aujourd'hui, il est fait une erreur comme celle-ci. XXX

Je ne peux pas comprendre comment résoudre ce problème. Je n'ai pas mis l'authentification à deux voies. Et aussi j'ai mis une application moins sécurisée autorisée. Donc, je ne peux pas comprendre ce qui ne va pas. Quelqu'un peut m'aider? J'apprécie grandement ça.

Voici le code que j'utilise, xxx


12 commentaires

Avez-vous suivi le lien dans le message d'erreur? Avez-vous essayé tous les étapes décrites? Que s'est-il passé lorsque vous avez essayé chacune de ces étapes?


Google a cassé quelque chose lié à la prise d'utilisation de POP3 de certains comptes. La même chose est arrivée à moi et à diverses personnes partout. Nous attendons un correctif.


@szako Pensez-vous que c'est la raison de ce que nous sommes confrontés maintenant? Quand vont-ils le réparer ou tout ce que nous pouvons faire pour éviter cela?


On dirait que Google résolue le problème, au moins pour moi (et pour d'autres que je vois dans des forums). Si c'était la cause, vous devriez essayer à nouveau du code. Autres sources liées J'ai trouvé: 1 , 2 , 3


@szako oui la mine aussi corrigé. Maintenant, je peux lire les emails. Merci pour l'information.


@Billshannon Oui, j'ai essayé toutes les étapes mais celles-ci ne résolvent pas le problème. Mais maintenant, le problème est corrigé. Merci pour le soutien.


Eh bien, ne nous gardez pas en suspens! Dites-nous exactement ce que c'est que corrigé le problème!


@Billshannon, je pense que Szako a raison. J'ai fait des changements de code et examinez mes paramètres Google, mais ils n'ont pas corrigé mon problème. J'ai changé mon code dans l'original et hier matin, j'ai rendu le programme à nouveau. Ensuite, cela fonctionne parfaitement. Donc, je ne sais pas ce qui s'est passé exactement, mais je pense que les informations m'a donné par Szako sont correctes.


Vous pouvez fermer la question maintenant je pense.


@szako ne trouve pas la bonne option de signaler à fermer.


@TECH GUY: a fait une réponse.


@szako a accepté la réponse. Merci pour votre soutien.


3 Réponses :


1
votes

Mon extrait de travail a l'air ci-dessous:

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;

public class CheckingMails {

   public static void check(String host, String user, String password) 
   {
      try {

      // create properties field
      Properties properties = new Properties();

      properties.put("mail.pop3s.host", host);
      properties.put("mail.pop3s.port", "995");
      properties.put("mail.pop3s.starttls.enable", "true");

      // Setup authentication, get session
      Session session = Session.getInstance(properties,
         new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
               return new PasswordAuthentication(user, password);
            }
         });
      // session.setDebug(true);

      // create the POP3 store object and connect with the pop server
      Store store = session.getStore("pop3s");

      store.connect();

      // create the folder object and open it
      Folder emailFolder = store.getFolder("INBOX");
      emailFolder.open(Folder.READ_ONLY);

      // retrieve the messages from the folder in an array and print it
      Message[] messages = emailFolder.getMessages();
      System.out.println("messages.length---" + messages.length);

      for (int i = 0, n = messages.length; i < n; i++) {
         Message message = messages[i];
         System.out.println("---------------------------------");
         System.out.println("Email Number " + (i + 1));
         System.out.println("Subject: " + message.getSubject());
         System.out.println("From: " + message.getFrom()[0]);
         System.out.println("Text: " + message.getContent().toString());
      }

      // close the store and folder objects
      emailFolder.close(false);
      store.close();

      } catch (NoSuchProviderException e) {
         e.printStackTrace();
      } catch (MessagingException e) {
         e.printStackTrace();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args) {

      String host = "pop.gmail.com";
      String username = "abc@gmail.com";// change accordingly
      String password = "*****";// change accordingly

      check(host, username, password);

   }

}


7 commentaires

J'ai à nouveau la même erreur. J'ai ajouté votre code et conserver cela aussi comme le même store.connect (hôte, nom d'utilisateur, mot de passe);


@TechGuy Cela fonctionne pour moi, bien que je n'ai aucun paramètre dans la méthode de connexion. Seulement Store Store = Session.getStore ("POP3S"); Store.connect ();


@TechGuy Vous pouvez vous connecter à votre compte Gmail et vérifier si les paramètres de sécurité sont désactivés.


J'ai essayé votre code. Mais cela me donne ce Échec de connexion, aucun mot de passe spécifié?


Les paramètres de sécurité signifient que vous permettent d'autoriser des applications moins sécurisées?


@TechGuy Oui, je voulais dire permettre des applications moins sécurisées. Désolé, si cela n'a pas aidé. Je vais éditer ma réponse et poster la classe que j'ai utilisée qui fonctionne parfaitement pour moi. Vous pouvez essayer de trouver si vous manquez quelque chose. Sinon, j'ai peur de ne pouvoir m'empêcher.


Merci pour votre réponse. Mais il continue à obtenir l'erreur à nouveau. Je ne sais pas pourquoi. J'ai essayé avec imap mais cela n'a pas non plus fonctionné.



1
votes

L'erreur était due à une erreur sur Google, qui a provoqué des services POP3 de travailler de manière incorrecte. C'était fixé après 2 jours.

Impossible de trouver une déclaration officielle, uniquement des postes de forum. Sources associées: 1 , 2 , 3


0 commentaires

0
votes

Mon problème était que le même code travaillait sur le local mais non sur le nuage distant (pipeline Bitbucket), bien que je définissais l'activation moins sécurisée. Je l'ai résolu par une vérification de 2 étapes activée et créez un mot de passe de l'application. Puis utilisé ce mot de passe de l'application au lieu du mot de passe normal dans le code.

Vous pouvez également vérifier le lien suivant: https://docs.maildev.com/article/121-gmail-web-login-requiped-Error--Aser78754-Failure


1 commentaires

Veuillez expliquer où le lien va, comment cela se rapporte à la question et comment cela fonctionne.