Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2013, 12:50
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Enviar emails desde java

Hola gente!!!

estoy enviando emails desde java utilizando javamails, el problema es que me tarda demasiado en enviar un email, una media de 2-4 segundos, lo cual, desde mi punto de vista es muchisimo

el codigo es el siguiente:

Código JAVA:
Ver original
  1. public class Correo {
  2.     Properties props = new Properties();
  3.    
  4.     public void enviarCorreo(String emailDestino, String subject, String body, String otherDates)
  5.     {
  6.         Correo obj = new Correo();
  7.         String server = "smtp.gmail.com";
  8.         String userName = "[email protected]";
  9.         String password = "rootroot";
  10.         String fromAddres = "todomotorrevista";
  11.         String toAddres = emailDestino;
  12.         String cc = "";
  13.         String bcc = "";
  14.         boolean htmlFormat = false;        
  15.        
  16.         obj.sendMail(server, userName, password, fromAddres, toAddres, cc, bcc,
  17.                      htmlFormat, subject, body+otherDates);
  18.        
  19.     }
  20.  
  21.     private void sendMail(String server, String userName, String password, String fromAddress, String toAddress, String cc, String bcc, boolean htmlFormat, String subject, String body)
  22.     {
  23.    
  24.         Properties properties = System.getProperties();
  25.         properties.put("mail.smtps.host", server);
  26.         properties.put("mail.smtps.auth", "true");
  27.         Session ses  = Session.getInstance(properties);
  28.  
  29.         ses.setDebug(true);
  30.  
  31.         try{
  32.        
  33.             MimeMessage msg = new MimeMessage(ses);
  34.    
  35.             msg.setFrom(new InternetAddress(fromAddress));
  36.    
  37.             if (toAddress != null){
  38.                msg.addRecipients(Message.RecipientType.TO, toAddress);
  39.             }
  40.    
  41.             if (cc != null){
  42.                 msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc, false));
  43.             }
  44.    
  45.             if (bcc != null){
  46.                 msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc, false));
  47.             }
  48.    
  49.             if (htmlFormat){
  50.                 msg.setContent(body, "text/html");
  51.             }
  52.             else{
  53.                 msg.setContent(body, "text/plain");
  54.             }
  55.    
  56.             msg.setSubject(subject);
  57.             msg.saveChanges();
  58.    
  59.             Transport tr = ses.getTransport("smtps");
  60.             tr.connect(server,userName, password);
  61.             tr.sendMessage(msg, msg.getAllRecipients());
  62.             tr.close();
  63.         }
  64.        
  65.         catch(MessagingException e){
  66.             e.printStackTrace();
  67.         }  
  68.         }
  69. }
  70.  
  71. class MyPasswordAuthenticator extends Authenticator{
  72.    String user;
  73.    String pw;
  74.  
  75.    public MyPasswordAuthenticator (String username, String password)   {
  76.       super();
  77.       this.user = username;
  78.       this.pw = password;
  79.    }
  80.    public PasswordAuthentication getPasswordAuthentication()   {
  81.       return new PasswordAuthentication(user, pw);
  82.    }   
  83. }

Igual tarda tanto porque se tiene que conectar con la cuenta de gmail antes de poder enviar el mensaje, pero no estoy seguro... alguna ayuda / alternativa para que los mensajes se envien más rapido?

Un saludo!!!

Última edición por rgf1987; 05/06/2013 a las 13:05