src/it/finsiel/siged/dao/mail/PecEmailIngresso.java
public static void preparaProtocolliMessaggiIngresso(
            EmailDelegate delegate, int aooId, String host, String port,
            String username, String password, String authentication,
            String tempFolder) throws EmailException {

        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        String SSL_FACTORY = "it.finsiel.siged.util.ssl.EprotSSLSocketFactory";
        Properties props = new Properties();
        props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.pop3.socketFactory.fallback", "false");
        props.setProperty("mail.pop3.port", port);
        props.setProperty("mail.pop3.socketFactory.port", port);

        try {

            int counter = 0;
            while (true) {
                Session session = Session.getInstance(props);
                Store store = session.getStore("pop3");
                //store.connect("pop3s.pec.aruba.it", "flosslab@arubapec.it", "mefad2008");
                store.connect(host, username, password);
                logger.debug("Connessione al server di posta effettuata.");
                Folder folder = store.getFolder("INBOX");
                folder.open(Folder.READ_WRITE);
                Message[] messages = folder.getMessages();
                logger.debug("Trovati " + messages.length + " messaggio/i");
                counter++;
                if (folder.getMessageCount() < 1 || counter > 50)
                    break;

                try {

                    MimeMessage msg = (MimeMessage) messages[0];// primo
                    // messaggio
                    MessaggioEmailEntrata pe = new MessaggioEmailEntrata();
                    pe.getEmail().setAooId(aooId);
                    pe.setTempFolder(tempFolder);

                    if (!msg.isSet(Flags.Flag.DELETED)) {
                        try {
                            LegalmailMessageParser.parseMessage(msg, pe);
                            logger.info(" Tipo email:" + pe.getTipoEmail());
                            logger.info(" Allegati  :"
                                    + pe.getAllegati().size());

                            int retVal = ReturnValues.UNKNOWN;
                            if (EmailConstants.TIPO_POSTA_CERTIFICATA
                                    .equalsIgnoreCase(pe.getTipoEmail())) {
                                retVal = delegate.salvaEmailIngresso(pe);
                            } else if (EmailConstants.TIPO_ANOMALIA
                                    .equalsIgnoreCase(pe.getTipoEmail())) {
                                // gestire diversamente ?
                                retVal = delegate.salvaEmailIngresso(pe);
                            } else if (EmailConstants.TIPO_ACCETTAZIONE
                                    .equalsIgnoreCase(pe.getTipoEmail())
                                    || EmailConstants.TIPO_CONSEGNA
                                            .equalsIgnoreCase(pe.getTipoEmail())
                                    || EmailConstants.TIPO_ALTRO
                                            .equalsIgnoreCase(pe.getTipoEmail())) {
                                retVal = delegate.salvaEmailIngressoLog(pe);
                            }

                            if (retVal == ReturnValues.SAVED) {
                                msg.setFlag(Flags.Flag.DELETED, true);
                            }
                        } catch (MessageParsingException e) {
                            delegate.salvaEmailLog("Messaggio: "
                                    + (msg != null ? (" " + msg.getSubject())
                                            : (" ")),
                                    "Errore Elaborazione Messaggio Email", e
                                            .getMessage(),
                                    EmailConstants.LOG_EMAIL_INGRESSO, aooId);
                            logger.error("", e);
                        } catch (Exception e) {
                            delegate.salvaEmailLog("Messaggio: "
                                    + (msg != null ? (" " + msg.getSubject())
                                            : (" ")), "Errore non specifico", e
                                    .getMessage(),
                                    EmailConstants.LOG_EMAIL_INGRESSO, aooId);
                            logger.error("", e);
                        }

                    }
                } catch (MessagingException e2) {
                    throw new EmailException(
                            "Errore nella lettura/elaborazione dei messaggi di posta elettronica.\nErrore: "
                                    + e2.getMessage());
                }
                // chiudo connessione e cancello envetuali messaggi gi�
                // scaricati
                try {
                    folder.close(true);
                    store.close();
                } catch (MessagingException e) {
                    logger.warn("", e);
                }
            }

        } catch (NoSuchProviderException e1) {
            throw new EmailException("Impossibile contattare l'host:" + host);
        } catch (MessagingException e1) {
        		e1.printStackTrace();
            throw new EmailException(
                    "Impossibile leggere i messaggi dalla cartella Inbox dell'host:"
                            + host+e1.getStackTrace()+"CIAO DANI"+e1.getLocalizedMessage());
        }

    }
/**
     * Controlla una casella di posta per presenza di nuovi messaggi email. Per
     * ogni messaggio genera un ProtocolloIngresso.
     * 
     * 
     * @param emailSettings
     */
Controlla una casella di posta per presenza di nuovi messaggi email. Per
ogni messaggio genera un ProtocolloIngresso.

@param emailSettings
Controlla una casella di posta per presenza di nuovi messaggi email . Per ogni messaggio genera un ProtocolloIngresso . @param emailSettings
public static void preparaProtocolliMessaggiIngresso(
            EmailDelegate delegate, int aooId, String host, String port,
            String username, String password, String authentication,
            String tempFolder) throws EmailException {
        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        String SSL_FACTORY = "it.finsiel.siged.util.ssl.EprotSSLSocketFactory";
        Properties props = new Properties();
        props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.pop3.socketFactory.fallback", "false");
        props.setProperty("mail.pop3.port", port);
        props.setProperty("mail.pop3.socketFactory.port", port);
        try {
            int counter = 0;
            while (true) {
                Session session = Session.getInstance(props);
                Store store = session.getStore("pop3");
                store.connect(host, username, password);
                logger.debug("Connessione al server di posta effettuata.");
                Folder folder = store.getFolder("INBOX");
                folder.open(Folder.READ_WRITE);
                Message[] messages = folder.getMessages();
                logger.debug("Trovati " + messages.length + " messaggio/i");
                counter++;
                if (folder.getMessageCount() < 1 || counter > 50)
                    break;
                try {
                    MimeMessage msg = (MimeMessage) messages[0];
                    MessaggioEmailEntrata pe = new MessaggioEmailEntrata();
                    pe.getEmail().setAooId(aooId);
                    pe.setTempFolder(tempFolder);
                    if (!msg.isSet(Flags.Flag.DELETED)) {
                        try {
                            LegalmailMessageParser.parseMessage(msg, pe);
                            logger.info(" Tipo email:" + pe.getTipoEmail());
                            logger.info(" Allegati  :"
                                    + pe.getAllegati().size());
                            int retVal = ReturnValues.UNKNOWN;
                            if (EmailConstants.TIPO_POSTA_CERTIFICATA
                                    .equalsIgnoreCase(pe.getTipoEmail())) {
                                retVal = delegate.salvaEmailIngresso(pe);
                            } else if (EmailConstants.TIPO_ANOMALIA
                                    .equalsIgnoreCase(pe.getTipoEmail())) {
                                retVal = delegate.salvaEmailIngresso(pe);
                            } else if (EmailConstants.TIPO_ACCETTAZIONE
                                    .equalsIgnoreCase(pe.getTipoEmail())
                                    || EmailConstants.TIPO_CONSEGNA
                                            .equalsIgnoreCase(pe.getTipoEmail())
                                    || EmailConstants.TIPO_ALTRO
                                            .equalsIgnoreCase(pe.getTipoEmail())) {
                                retVal = delegate.salvaEmailIngressoLog(pe);
                            }
                            if (retVal == ReturnValues.SAVED) {
                                msg.setFlag(Flags.Flag.DELETED, true);
                            }
                        } catch (MessageParsingException e) {
                            delegate.salvaEmailLog("Messaggio: "
                                    + (msg != null ? (" " + msg.getSubject())
                                            : (" ")),
                                    "Errore Elaborazione Messaggio Email", e
                                            .getMessage(),
                                    EmailConstants.LOG_EMAIL_INGRESSO, aooId);
                            logger.error("", e);
                        } catch (Exception e) {
                            delegate.salvaEmailLog("Messaggio: "
                                    + (msg != null ? (" " + msg.getSubject())
                                            : (" ")), "Errore non specifico", e
                                    .getMessage(),
                                    EmailConstants.LOG_EMAIL_INGRESSO, aooId);
                            logger.error("", e);
                        }
                    }
                } catch (MessagingException e2) {
                    throw new EmailException(
                            "Errore nella lettura/elaborazione dei messaggi di posta elettronica.\nErrore: "
                                    + e2.getMessage());
                }
                try {
                    folder.close(true);
                    store.close();
                } catch (MessagingException e) {
                    logger.warn("", e);
                }
            }
        } catch (NoSuchProviderException e1) {
            throw new EmailException("Impossibile contattare l'host:" + host);
        } catch (MessagingException e1) {
        		e1.printStackTrace();
            throw new EmailException(
                    "Impossibile leggere i messaggi dalla cartella Inbox dell'host:"
                            + host+e1.getStackTrace()+"CIAO DANI"+e1.getLocalizedMessage());
        }
    }
public static void preparaProtocolliMessaggiIngresso ( EmailDelegate delegate , int aooId , String host , String port , String username , String password , String authentication , String tempFolder ) throws EmailException { Security . addProvider ( new com . sun . net . ssl . internal . ssl . Provider ( ) ) ; String SSL_FACTORY = "it.finsiel.siged.util.ssl.EprotSSLSocketFactory" ; Properties props = new Properties ( ) ; props . setProperty ( "mail.pop3.socketFactory.class" , SSL_FACTORY ) ; props . setProperty ( "mail.pop3.socketFactory.fallback" , "false" ) ; props . setProperty ( "mail.pop3.port" , port ) ; props . setProperty ( "mail.pop3.socketFactory.port" , port ) ; try { int counter = 0 ; while ( true ) { Session session = Session . getInstance ( props ) ; Store store = session . getStore ( "pop3" ) ; store . connect ( host , username , password ) ; logger . debug ( "Connessione al server di posta effettuata." ) ; Folder folder = store . getFolder ( "INBOX" ) ; folder . open ( Folder . READ_WRITE ) ; Message [ ] messages = folder . getMessages ( ) ; logger . debug ( "Trovati " + messages . length + " messaggio/i" ) ; counter ++ ; if ( folder . getMessageCount ( ) < 1 || counter > 50 ) break ; try { MimeMessage msg = ( MimeMessage ) messages [ 0 ] ; MessaggioEmailEntrata pe = new MessaggioEmailEntrata ( ) ; pe . getEmail ( ) . setAooId ( aooId ) ; pe . setTempFolder ( tempFolder ) ; if ( ! msg . isSet ( Flags . Flag . DELETED ) ) { try { LegalmailMessageParser . parseMessage ( msg , pe ) ; logger . info ( " Tipo email:" + pe . getTipoEmail ( ) ) ; logger . info ( " Allegati  :" + pe . getAllegati ( ) . size ( ) ) ; int retVal = ReturnValues . UNKNOWN ; if ( EmailConstants . TIPO_POSTA_CERTIFICATA . equalsIgnoreCase ( pe . getTipoEmail ( ) ) ) { retVal = delegate . salvaEmailIngresso ( pe ) ; } else if ( EmailConstants . TIPO_ANOMALIA . equalsIgnoreCase ( pe . getTipoEmail ( ) ) ) { retVal = delegate . salvaEmailIngresso ( pe ) ; } else if ( EmailConstants . TIPO_ACCETTAZIONE . equalsIgnoreCase ( pe . getTipoEmail ( ) ) || EmailConstants . TIPO_CONSEGNA . equalsIgnoreCase ( pe . getTipoEmail ( ) ) || EmailConstants . TIPO_ALTRO . equalsIgnoreCase ( pe . getTipoEmail ( ) ) ) { retVal = delegate . salvaEmailIngressoLog ( pe ) ; } if ( retVal == ReturnValues . SAVED ) { msg . setFlag ( Flags . Flag . DELETED , true ) ; } } catch ( MessageParsingException e ) { delegate . salvaEmailLog ( "Messaggio: " + ( msg != null ? ( " " + msg . getSubject ( ) ) : ( " " ) ) , "Errore Elaborazione Messaggio Email" , e . getMessage ( ) , EmailConstants . LOG_EMAIL_INGRESSO , aooId ) ; logger . error ( "" , e ) ; } catch ( Exception e ) { delegate . salvaEmailLog ( "Messaggio: " + ( msg != null ? ( " " + msg . getSubject ( ) ) : ( " " ) ) , "Errore non specifico" , e . getMessage ( ) , EmailConstants . LOG_EMAIL_INGRESSO , aooId ) ; logger . error ( "" , e ) ; } } } catch ( MessagingException e2 ) { throw new EmailException ( "Errore nella lettura/elaborazione dei messaggi di posta elettronica.\nErrore: " + e2 . getMessage ( ) ) ; } try { folder . close ( true ) ; store . close ( ) ; } catch ( MessagingException e ) { logger . warn ( "" , e ) ; } } } catch ( NoSuchProviderException e1 ) { throw new EmailException ( "Impossibile contattare l'host:" + host ) ; } catch ( MessagingException e1 ) { e1 . printStackTrace ( ) ; throw new EmailException ( "Impossibile leggere i messaggi dalla cartella Inbox dell'host:" + host + e1 . getStackTrace ( ) + "CIAO DANI" + e1 . getLocalizedMessage ( ) ) ; } }
Controlla una casella di posta per presenza di nuovi messaggi email.
Controlla una casella di posta per presenza di nuovi messaggi email .
//store.connect("pop3s.pec.aruba.it", "flosslab@arubapec.it", "mefad2008"); // primo // messaggio // gestire diversamente ? // chiudo connessione e cancello envetuali messaggi gi� // scaricati