JavaMail ? envio de e-mail com múltiplos destinatários

2 respostas
R

Olá,

Estou tentando enviar um e-mail com múltiplos destinatários , mas esta ocorrendo um erro.

Os endereços de destino estão corretos.

Eis o erro que aparece:

javax.mail.SendFailedException: Sending failed;

nested exception is:

class javax.mail.SendFailedException: Invalid Addresses;

nested exception is:

class javax.mail.SendFailedException: 550 5.1.1 User unknown
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at br.com.xxxx.audi.util.email.EnvioEmail.send(EnvioEmail.java:113)
at br.com.xxxx.audi.util.email.EnvioEmail.main(EnvioEmail.java:152)

Será que alguém poderia dizer aonde estou errando ? :?

Eis o meu codigo:

...
String[] recipients = {"[email removido]","[email removido]"};
...
       Properties props = System.getProperties();  
       props.put("mail.smtp.host", smtpServer);  
       Session session = Session.getDefaultInstance(props, null);         
       Message msg = new MimeMessage(session);  
        
       /* Assim funciona 
       InternetAddress[] address = {  
    		    new InternetAddress("[email removido]"),  
    		    new InternetAddress ("[email removido]")  
    		    }; 
       */
       
       InternetAddress[] address = new InternetAddress[recipients.length];
       for (int i = 0; i < recipients.length; i++)
       {
           address[i] = new InternetAddress(recipients[i]);
           System.out.println("Passei " + i + " de " + recipients.length + ": " + recipients[i].toString());
       }       
       
       
      //setando o remetente do email 
       msg.setFrom(new InternetAddress(from));       
     //setando o destinatario do email 
       msg.setRecipients(Message.RecipientType.TO, address); 
     //setando o assunto do email 
       msg.setSubject(subject);
     //setando o corpo do email 
       msg.setText(body);  
     //setando o cabecalho do email 
       msg.setHeader("Luis", "Luis");
     //setando a data de envio do email  
       msg.setSentDate(new Date());  
     //enviando o email 
       Transport.send(msg);  
   
       System.out.println("Message sent enviada com sucesso !!!" );  
     }  
     catch (Exception ex)  
     {  
       ex.printStackTrace();  
       ex.getCause();
       ex.getMessage();
     }  
   }

2 Respostas

R

Acredito que seja porque o metodo de enviar o e-mail esta fora do for…

...   
String[] recipients = {"[email removido]","[email removido]"};   
...   
       Properties props = System.getProperties();     
       props.put("mail.smtp.host", smtpServer);     
       Session session = Session.getDefaultInstance(props, null);           
       Message msg = new MimeMessage(session);     
           
       /* Assim funciona  
       InternetAddress[] address = {    
                new InternetAddress("[email removido]"),    
                new InternetAddress ("[email removido]")    
                };  
       */   
         
       InternetAddress[] address = new InternetAddress[recipients.length];   
       for (int i = 0; i &lt; recipients.length; i++)   
       {   
           address[i] = new InternetAddress(recipients[i]);   
           System.out.println("Passei " + i + " de " + recipients.length + ": " + recipients[i].toString());   
               
         
         
      //setando o remetente do email   
       msg.setFrom(new InternetAddress(from));         
     //setando o destinatario do email   
       msg.setRecipients(Message.RecipientType.TO, address);   
     //setando o assunto do email   
       msg.setSubject(subject);   
     //setando o corpo do email   
       msg.setText(body);     
     //setando o cabecalho do email   
       msg.setHeader("Luis", "Luis");   
     //setando a data de envio do email     
       msg.setSentDate(new Date());     
     //enviando o email   
       Transport.send(msg);     
     }
       System.out.println("Message sent enviada com sucesso !!!" );     
     }     
     catch (Exception ex)     
     {     
       ex.printStackTrace();     
       ex.getCause();   
       ex.getMessage();   
     }     
   }

tente agora…

J

Na verdade seu codigo estah certo. Essa mensagem de erro eh emitida pelo SMTP server, indicando provavelmente que o endereço de mail origem(from) utilizado nesse em sua mensagem nao eh desse servidor, e ao mesmo tempo seu servidor nao permite relay para dominios os quais ele nao eh destinatario.

Criado 23 de outubro de 2008
Ultima resposta 23 de out. de 2008
Respostas 2
Participantes 3