jueves 22 de enero de 2009

Gmail & Magnolia & JavaMail [FIXED]

(continuación de Gmail & Magnolia & JavaMail)

Finalmente lo entendí! y resulta que los simpáticos muchachos de SUN tenían razón. Hay que leer hasta entender.

Lo que estaba haciendo mal era agregar un SSLSocketFactory cuando la comunicación era TLS.
Claro, ahora es fácil decirlo: "si es TLS obviamente no necesita socket SSL!", pero costó sangre darse cuenta.

La configuración finalmente queda así:

if (Boolean.valueOf((String) this.mailParameters.get(SMTP_SSL)).booleanValue()) { // port 465
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
}

if (Boolean.valueOf((String) this.mailParameters.get(SMTP_TLS)).booleanValue()) { // port 587
props.put("mail.smtp.starttls.enable", "true");
}

Gracias a Teresa Miyar el parche ya está integrado en el trunk de Magnolia. :)

.