Invio PEC tramite Java

Salve a tutti! Devo inviare delle fatture tramite PEC da un programmino Java. Il fatto è che, dall’aggiornamento in cui TLSv1.2 è un requisito su Aruba, il server SMTP mi da il seguente errore:

“La versione del client di posta che stai utilizzando non rispetta i requisiti di sicurezza minimi richiesti dal servizio PEC. Per maggiori dettagli sui requisiti di compatibilità vai su verifica.pec.it”.

Lo stesso codice che ho usato per anni ora non funziona più. Uso Java Mail (pacchetto javax.mail).
Ho anche messo:

props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");

Purtroppo non so cosa fare, mi da sempre lo stesso errore qualsiasi cosa io provi a settare.
Vi assicuro che le credenziali e i vari settaggi si trovano, in quanto il programma funzionava fino a qualche giorno fa.

C’è qualche passaggio da fare, per caso?

Grazie in anticipo a tutti!

Hai verificato la versione di java come indicato sul sito? ( https://guide.pec.it/servizio-pec/protocollo-sicurezza-tls12-requisiti-compatibilita/servizio-integrato-nei-sistemi-aziendali.aspx )

Ciao, l’unica possibilità è che il tuo client, con cui invii le fatture, non riesca a sfruttare il protocollo di sicurezza TLS1.2. Ciò accade se usi Windows XP, oppure se la tua applicazione utilizza .NET Framework 4.0 o inferiori.
Se è questo il tuo caso, posso dirti come fare. E’ questo?

Hai provato a frozareil factory a SSLSocketFactory?

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

Scusate,
avete risolto? io ho lo stesso identico problema con uno script in php! non capisco dove andare a cercare! per giunta il protocollo tls 1.2 è presente nel mio server di invio.

Buonasera, sto provando ad inviare PEC con javax.mail 1.6.2 e java 8, mettendo tutte le properties da voi suggerite ed avviando il progetto in Debug con setDebug = true, invia,
mentre se avvio il progetto normalemente si resetta lai connessione:

*2020-04-17 14:30:42 INFO MailInvio:355 - smtps.pec.aruba.it
DEBUG: setDebug: JavaMail version 1.4.4
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host “smtps.pec.aruba.it”, port 465, isSSL true
2020-04-17 14:30:43 ERROR MailInvio:493 - javax.mail.MessagingException: Could not connect to SMTP host: smtps.pec.aruba.it, port: 465;
nested exception is:
java.net.SocketException: Connection reset
2020-04-17 14:30:43 ERROR MailInvio:443 - java.lang.IllegalStateException: Not connected

. C’è qualche altro settaggio da fare?
Grazie.

Buongiorno,
spero di poter dare una mano; avevo anch’io lo stesso problema con Aruba per la ricezione delle PEC ed ho risolto settando le seguenti proprietà:
//javaMailProperties.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); javaMailProperties.setProperty("mail.imap.socketFactory.fallback", "false"); javaMailProperties.setProperty("mail.store.protocol", "imaps"); javaMailProperties.setProperty("mail.debug", "false"); javaMailProperties.setProperty("mail.imaps.ssl.enable", "true"); javaMailProperties.setProperty("mail.imaps.starttls.enable", "true"); javaMailProperties.setProperty("mail.imaps.ssl.protocols", "TLSv1.2");

javax.net.ssl.SSLSocketFactory è commentata
non ho provato ad inviare ma credo che sostituendo imaps con smtps dovrebbe funzionare.

2 Mi Piace