Bueno al final lo hice con hilos como me dices, sigue tardando, pero como se ejecuta en segundo plano no me da problemas : ), al final el codigo quedó así:
Creo el hilo:
Código Java:
Ver originalCorreo correo = new Correo(articulo.getAutor().getEmailUsuario(),
Constantes.TITULO_CORREO_ARTICULOENVIADO,
Constantes.CUERPO_CORREO_ARTICULOENVIADO, datosAdicionales);
hiloCorreo.start();
Y la clase Correo quedaria asi implementando la interfaz Runnable:
Código Java:
Ver originalpublic class Correo
implements Runnable{ public Correo(){}
this.emailDestino=emailDestino;
this.subject=subject;
this.body=body;
this.otherDates=otherDates;
}
@Override
public void run()
{
Correo obj = new Correo();
String server
= "smtp.gmail.com"; String fromAddres
= "todomotorrevista"; String toAddres
= emailDestino
; boolean htmlFormat = false;
obj.sendMail(server, userName, password, fromAddres, toAddres, cc, bcc,
htmlFormat, subject, body+otherDates);
}
{
properties.put("mail.smtps.host", server);
properties.put("mail.smtps.auth", "true");
Session ses = Session.getInstance(properties);
ses.setDebug(true);
try{
MimeMessage msg = new MimeMessage(ses);
msg.setFrom(new InternetAddress(fromAddress));
if (toAddress != null){
msg.addRecipients(Message.RecipientType.TO, toAddress);
}
if (cc != null){
msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc, false));
}
if (bcc != null){
msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc, false));
}
if (htmlFormat){
msg.setContent(body, "text/html");
}
else{
msg.setContent(body, "text/plain");
}
msg.setSubject(subject);
msg.saveChanges();
Transport tr = ses.getTransport("smtps");
tr.connect(server,userName, password);
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}
catch(MessagingException e){
e.printStackTrace();
}
}
}
public MyPasswordAuthenticator
(String username,
String password
) { super();
this.user = username;
this.pw = password;
}
}
}
En este caso... no haria falta sincronizacion, ¿o si?