Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    problema nel prendere Folder da Server tramite Imap

    So che i server provvisti di protocollo imap consentono di ottenere il contenuto non solo della posta in arrivo ma anche di eventuali altre cartelle (Folder , ad esempio posta inviata,spam , ecc) ma purtroppo non ci riesco e non capisco il perchè...
    Innanzitutto date un'occhiata a questo link riguardo le configurazioni e le varie Folder di gmail link

    Se ad esempio in un mio programma java provo a ottenere la posta inviata di un account gmail trmite la seguente procedura :

    codice:
    ...
    Properties props = props.setProperty("mail.store.protocol", "imaps");
    Store store = Session.getDefaultInstance(props, null).getStore("imaps")
    store.connect("imap.gmail.com" , stringUsername , stringPassword);
    Folder outbox = store.getFolder("[Gmail]/Sent Mail");
    outbox.open(Folder.READ_WRITE);
    ...
    ottengo la seguente eccezzione:

    codice:
    javax.mail.FolderNotFoundException: [Gmail]/Sent Mail not found
    e si riferisce alla riga:
    codice:
    outbox.open(Folder.READ_WRITE);
    ma lo stesso avviene con le altre field di Folder (READ_ONLY ecc)

    Perchè avviene ciò?Se la stessa guida di gmail mi indica questi parametri perchè mi dice che non trova la folder?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ho fatto una piccola ricerca, ed è saltato fuori del codice per sgamare tutte le cartelle di un account Gmail... c'ho messo brevemente mano e questo a me funziona:
    codice:
    Properties props = System.getProperties(); 
            props.setProperty("mail.store.protocol", "imaps"); 
            try { 
                Session session = Session.getDefaultInstance(props, null); 
                javax.mail.Store store = session.getStore("imaps"); 
                store.connect("imap.gmail.com", "username@gmail.com", "password"); 
                javax.mail.Folder[] folders = store.getDefaultFolder().list("*"); 
                Folder outbox = null;
                for (javax.mail.Folder folder : folders) { 
                    if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) { 
                        System.out.println(folder.getFullName() + ": " + folder.getMessageCount());
                        
                    } 
                }
                outbox = store.getFolder("[Gmail]/Sent Mail");
                if (outbox != null) {
                    outbox.open(Folder.READ_ONLY);
                    System.out.println("\n\n*************\n\nMessaggi\n\n");
                    Message[] messages = outbox.getMessages();
                    for (Message message : messages) {
                        System.out.println(message.getSubject());
                    }
                }
            } 
            catch (MessagingException e) { 
                e.printStackTrace(); 
            }
    scusa la povera indentazione, sono di corsa.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema nel prendere Folder da Server tramite Imap

    Originariamente inviato da zipangulu
    ottengo la seguente eccezzione:

    codice:
    javax.mail.FolderNotFoundException: [Gmail]/Sent Mail not found
    e si riferisce alla riga:
    codice:
    outbox.open(Folder.READ_WRITE);
    ma lo stesso avviene con le altre field di Folder (READ_ONLY ecc)

    Perchè avviene ciò?Se la stessa guida di gmail mi indica questi parametri perchè mi dice che non trova la folder?
    Guarda, purtroppo non ho un account GMail e quindi non posso fare prove. Ma ti suggerisco di usare i metodi di Store che ti forniscono un Folder[] ... almeno prova a stampare i folder che trova e vedi che nomi hanno ...... magari non sono quelli che ti aspetti o di cui sapevi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Grazie 1000 Andrea 1979 e andbin , infatti il problema era proprio che non esisteva una cartella con quel nome , la cartella della posta inviata si chiama "[Gmail]/Posta inviata"

    Saluti!

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    che palle però! Questa è una cosa nata male: cioè se uno scrive un client per accedere via imap all'account gmail, deve prevedere anche la traduzione delle cartelle di default in più lingue? La scomodità fatta ad internazionalizzazione.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.