IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Gestion mail - Api JavaMail


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut Gestion mail - Api JavaMail
    Bonsoir tardif,

    Je récupère des messages sur Gmail avec l’API JavaMail, et ce en utilisant IMAP.

    Une fois récupérés, je cherche à déplacer certains messages, suivant des critères, dans la corbeille, mais je rencontre un petit problème.

    Si je code ainsi, j’ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (Message message : messages) {
        if (condition dans message){
            Folder trash = store.getFolder("[Gmail]/Corbeille");
            inbox.copyMessages(message,trash);				
           }
    }
    Code Erreur : Sélectionner tout - Visualiser dans une fenêtre à part
    The method copyMessages(Message[], Folder) in the type Folder is not applicable for the arguments (Message, Folder)

    Et si je fais cela ça fonctionne, mais bien évidement je déplace tous les messages en une seule fois dans la corbeille Gmail, ce qui n’est pas le but.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (Message message : messages) {
        if (condition dans message){
            Folder trash = store.getFolder("[Gmail]/Corbeille");
            inbox.copyMessages(messages,trash);				
           }
    }
    Et pour terminer, si je code ainsi, juste pour test, j'ai le même message d'erreur que précédemment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (Message message : messages) {
        if (condition dans message){
            Folder trash = store.getFolder("[Gmail]/Corbeille");
            inbox.copyMessages(messages[0],trash);				
           }
    }
    Auriez vous une petite idée.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Finalement j’ai trouvé une solution.

    Le problème était que lorsque je détruisais un message dans Gmail, il n’était pas stocké dans la corbeille, d’où mon approche qui consistait à copier/déplacer le message dans la corbeille.

    Finalement, en modifiant les paramètres de la boite dans Gmail, j’arrive à mes fins.

    • Désactiver l'effacement automatique : mise à jour du serveur par le client
    • Placer le message dans la corbeille


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (Message message : messages) {
        if (condition dans message){
            message.setFlag(Flags.Flag.DELETED, true);			
           }
    }
    inbox.close(true);
    Par contre, je n’ai pas compris pourquoi j’avais des erreurs dans mon code précédent.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Et pour que cela fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Folder trash = store.getFolder("[Gmail]/Corbeille");
    for (Message message : messages) {
        if (condition dans message){
            message.setFlag(Flags.Flag.DELETED, true);
            inbox.copyMessages(new Message[] { message }, trash);			
           }
    }
    inbox.close(true);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème envoi de mail avec l'API JavaMail
    Par starkia dans le forum Général Java
    Réponses: 1
    Dernier message: 16/09/2013, 23h09
  2. installer un API (Javamail pour etre précis)
    Par jbjweb dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 13/07/2006, 18h36
  3. sujet mail avec javamail
    Par tdeco dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 04/05/2006, 11h18
  4. [JavaMail]Probleme avec API JavaMail
    Par spk4ever dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/04/2006, 16h39
  5. [JavaMail] Mail avec javamail super lent ?
    Par Baptiste Wicht dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 19/01/2006, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo