JAVA Mail (RESPONDIDO)

5 respostas
klayrocha

Alguém sabe como ocultar os destinatários.

public String enviarEmail(NewsLetterForm form) {
		 String mensagem = form.getInfo();
		 String senha = form.getSenhaenvio();
		 
		 try {
			  
		  if(senha != null && senha.equals("******")){
			 NewsLetterDAO dao = new NewsLetterDAO();
			 List emails = dao.getEmails();
			 String[] listaEmailsPara = new String[emails.size()];
			 int contador = 0;
			 for (Iterator iter = emails.iterator(); iter.hasNext();) {
				EmailDTO emailDTO = (EmailDTO) iter.next();
				listaEmailsPara[contador] = emailDTO.getEmail();
				contador++;
			 }
			 
		     // Obtém objeto de propriedades
			 Properties props = System.getProperties();
	  
			 // Define propriedade do servidor de SMTP
			 props.put("mail.smtp.host","smtp.site.com.br");
	
			  //Obtém uma sessão
			  Session session = Session.getDefaultInstance(props, null);
		   	
			  // Cria um novo objeto de mensagem
			  MimeMessage message = new MimeMessage(session);
		   	
			  // Preenche o objeto de mensagem
			  message.setText(mensagem);
			  message.setSubject("Informativo");
			  message.setFrom(new InternetAddress("[email removido]","Informativo"));

			 InternetAddress[] endsPara = new InternetAddress[listaEmailsPara.length];  
             for (int i = 0; i < listaEmailsPara.length; i++){  
                 endsPara[i] = new InternetAddress(listaEmailsPara[i]);  
                 System.out.println("");  
             }  
            message.setRecipients(Message.RecipientType.TO, endsPara);  
            
			Transport.send(message);
		  }
		 } catch (MessagingException me) {
			  System.out.println("MessagingException  :  "+me.toString());	
		 } catch(Exception ex){
			 System.out.println("Exception  :  "+ex.toString());	
		 }
		 return "Email enviado com sucesso !!!";	   
  }

5 Respostas

T

Use apenas um destinatário no TO, e use a sua lista de destinatários no BCC.

Em particular, seria melhor (embora um pouco mais lento) mandar um email para cada destinatário, até porque é mais elegante e menos sujeito a ser deletado por um filtro de spam, ou pelo próprio usuário.

Se um email não vem com o meu destinatário, eu jogo fora.

klayrocha

Não entendi quando vc disse “e use a sua lista de destinatários no BCC.”

ignacio83

Troque:

message.setRecipients(Message.RecipientType.TO, endsPara);

Por:

message.setRecipients(Message.RecipientType.BCC, endsPara);

http://java.sun.com/products/javamail/javadocs/javax/mail/Message.RecipientType.html

T

De qualquer maneira, evite pôr muitos destinatários na lista BCC.
Como eu já lhe avisei, filtros de SPAM não gostam de mensagens com muitos integrantes no BCC.
Antigamente os spammers usavam essa técnica (hoje eles não usam mais, a menos que sejam muito ingênuos) mas os filtros de spam ainda têm essa regra.

klayrocha

Beleza galera ! Valeu mesmo pela ajuda.

Criado 5 de maio de 2009
Ultima resposta 6 de mai. de 2009
Respostas 5
Participantes 3