Enviar E-mail com o JAVA a partir de uma lista em .txt [RESOLVIDO]

23 respostas
Filipe_Sartor

Olá Senhores, preciso de auxilio. Estou tentando fazer com que o meu código java envie e-mail com endereços que estão em uma lista em “.txt”. O e-mail eu consigo enviar, o que não estou conseguindo é ler a lista e colocar o endereço destinatário. Alguém pode me ajudar, por favor?

23 Respostas

nel

Oi,

antes de mais nada adicione seu código entre as tags code. Particularmente, nem sequer analisei ele porque não tem condições.
Sobre sua necessidade, aconselho a ler o arquivo TXT, pegar o e-mail que quer e salvar em uma lista.

Feito isso, use-e em um laço de repetição no qual irá enviar e-mail enquanto houver registros nessa lista, sendo que cada posição dela guarda um e-mail de destinatário. Acredito que seja bem simples, tendo em vista que já tens a parte de envio de e-mail implementada.

Abraços.

Filipe_Sartor

O Código:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
	
	public class sendEmail {
 
		public static void enviarEmail(String de, String para, String assunto, String msg)
        	throws MessagingException {
				Properties props = System.getProperties();
				// importante: Setando o host smtp
				props.put("mail.transport.protocol", "smtp");
				props.put("mail.smtp.host", "smtp.ibrap.ind.br");
				props.put("mail.smtp.auth", "true");
 
				Authenticator auth = new Authenticator(){
            
					public PasswordAuthentication getPasswordAuthentication(){
						return new PasswordAuthentication("[email removido]", "senha");
					}
        };
        
        	Session session = Session.getDefaultInstance(props, auth);

        	// opcional: habilitando o debug
        	session.setDebug(true);
 
        	// criando a mensagem
        	Message mensagem = new MimeMessage(session);
        	// remente
        	InternetAddress addressFrom = new InternetAddress(de);
        	
 	   		Address to = new InternetAddress();	
 	   		mensagem.setFrom(addressFrom);
 	   		mensagem.setSubject(assunto);
 	   		mensagem.setContent(msg, "text/html;charset=ISO-8859-1");
 	   		// para texto normal use "text/plain;charset=ISO-8859-1"
 	   		// você pode mudar o charset também

 	   		to = new InternetAddress(para);
 	   		mensagem.addRecipient(Message.RecipientType.TO, to);
 	   		Transport.send(mensagem);
		}
		
		public class LerArquivo {    
	        void leArquivo(String to){ //metodo que le o arquivo texto  
	        	try {    
	                File arquivo = new File("C:/Documents and Settings/Filipe/Desktop/listaemail.txt");    
	                   
	                FileReader fileReader = new FileReader(arquivo);    
	                BufferedReader buffer = new BufferedReader(fileReader);       
	     
	                String line = buffer.readLine();               
	              
	                 while (line != null) {     
	                    
	                	 System.out.println(line);
	                	 line = buffer.readLine();
	                	 to = line;
	                 }    
	         
	            } catch (Exception e) {    
	               e.printStackTrace();    
	              }    
	        }    
		}
		
	public static void main(String[] args, String to ) throws MessagingException {
    	
        sendEmail.enviarEmail("[email removido]", ""+ to , "teste", "Email de teste com programa JAVA");
	}
}

Ok Nel, obrigado pela resposta ...

Mas como eu faço para pegar do .txt e colocar numa lista ?

nel

De nada.

No GUJ tem um Tutorial sobre Arquivos.
Ele ensina como manipular arquivos e isso inclui sua leitura. Dá uma olhada que será bem útil.

Abraços.

Filipe_Sartor

Consegui manipular o arquivo .txt e coloquei em uma lista, porém, na hora de enviar o email utilizando o conteudo das variáveis não está dando certo ... Alguém pode me ajudar ??

o Código:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class EnviarEmail{
  public static void main(String[] args) throws MessagingException{
	  
	  	Properties props = System.getProperties();
		// importante: Setando o host smtp
		props.put("mail.transport.protocol", "smtp");
		props.put("mail.smtp.host", "smtp.ibrap.ind.br");
		props.put("mail.smtp.auth", "true");

		Authenticator auth = new Authenticator(){
  
			public PasswordAuthentication getPasswordAuthentication(){
				return new PasswordAuthentication("[email removido]", "2010fasc9951");
			}
		};
		
		Session session = Session.getDefaultInstance(props, auth);

    	// opcional: habilitando o debug
    	session.setDebug(true);

    	// criando a mensagem
    	Message mensagem = new MimeMessage(session);
		InternetAddress emissor = new InternetAddress("[email removido]");	
		Address destino = new InternetAddress();
		
		
		mensagem.setFrom(emissor);
	   	String assunto = "Assunto";
		mensagem.setSubject(assunto);
	   	String msg = "Corpo da Mensagem";
		mensagem.setContent(msg, "text/html;charset=ISO-8859-1");
	   	
	   	mensagem.addRecipient(Message.RecipientType.TO, destino);
	   	Transport.send(mensagem);
	   	
	  
	  ArrayList<String> listaEmail = new ArrayList<String>();
	  int tam=0;
	  
	  try {
        BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
        String linha;
        while((linha = in.readLine()) != null){
        	System.out.println(linha);
        	listaEmail.add(linha);
			linha = listaEmail.set(tam, linha);
        	sendEmail.enviarEmail(emissor, destino , assunto , msg);
        }
        tam=listaEmail.size();
        System.out.println(tam);
        
        in.close();
    } 
    catch (IOException e){
        // possiveis erros são tratatos aqui
    }
    System.exit(0);
  }

}
nel

Oi.

Veja esse trecho:

ArrayList<String> listaEmail = new ArrayList<String>();  
      int tam=0;  
        
      try {  
        BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));  
        String linha;  
        while((linha = in.readLine()) != null){  
            System.out.println(linha);  
            listaEmail.add(linha);  
            linha = listaEmail.set(tam, linha);  
            sendEmail.enviarEmail(emissor, destino , assunto , msg);  
        }  
        tam=listaEmail.size();  
        System.out.println(tam);

Dessa forma você não precisa nem usar a Lista, eu achei que você fosse enviar a lista de outra classe para a que envia e-mail ou algo do tipo.
Mas se vai fazer tudo na mesma classe, não precisa dela. Outro detalhe, não entendi porque você usa o set da List ou algo do tipo, mas enfim.

Conte-nos, está havendo exceção? Se sim, deves postar a stacktrace.

Filipe_Sartor
Na verdade não consigo compilar, na linha:
sendEmail.enviarEmail(emissor, destino , assunto , msg);
está sublinhado em vermelho "enviarEmail" , e na linha :
linha = destino;

está sublinhado em vermelho "destino" ....

Quando tiro as váriáveis da linha:
sendEmail.enviarEmail(emissor, destino , assunto , msg);
e no lugar delas eu coloco:
sendEmail.enviarEmail("[email removido]", "[email removido]", "assunto" , "msg");
o Eclipse apresenta a seguinte mensagem:
DEBUG: setDebug: JavaMail version 1.4.4
Exception in thread "main" java.lang.NullPointerException
	at javax.mail.internet.InternetAddress.lengthOfFirstSegment(InternetAddress.java:479)
	at javax.mail.internet.InternetAddress.toString(InternetAddress.java:462)
	at javax.mail.internet.InternetAddress.toString(InternetAddress.java:426)
	at javax.mail.internet.MimeMessage.addAddressHeader(MimeMessage.java:727)
	at javax.mail.internet.MimeMessage.addRecipients(MimeMessage.java:637)
	at javax.mail.Message.addRecipient(Message.java:400)
	at EnviarEmail.main(EnviarEmail.java:44)
ArrayList&lt;String&gt; listaEmail = new ArrayList&lt;String&gt;();
	  int tam=0;
	  int i=0;
	  
	  try {
        //le o arquivo .txt
        BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
        String linha;
        
         while((linha = in.readLine()) != null){
        	System.out.println(linha);
        	listaEmail.add(linha);
        	//destino recebe a leitura 
              linha = destino;
                //envia
        	sendEmail.enviarEmail(emissor, destino , assunto , msg);
        	i = i+1;
        }
        tam=listaEmail.size();
        System.out.println(tam);
        
        in.close();
nel

O erro de NullPointer é por causa disso:

Address destino = new InternetAddress();

Criou um Address sem IP, sem localização.
As outras linhas em vermelho é porque tu espera uma String e está enviando um objeto Address, o mesmo serve para linha = destino.
Fique atento aos tipos, revise com calma seu código e se a dúvida persistir, envia o seu código COMPLETO.

Filipe_Sartor

Desculpe, mas realmente não estou conseguindo, olhe meu código para ver o que acontece:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class EnviarEmail{
  public static void main(String[] args) throws MessagingException{
	  
	  	Properties props = System.getProperties();
		// importante: Setando o host smtp
		props.put("mail.transport.protocol", "smtp");
		props.put("mail.smtp.host", "smtp.ibrap.ind.br");
		props.put("mail.smtp.auth", "true");

		Authenticator auth = new Authenticator(){
  
			public PasswordAuthentication getPasswordAuthentication(){
				return new PasswordAuthentication("[email removido]", "senha");
			}
		};
		
		Session session = Session.getDefaultInstance(props, auth);

    	// opcional: habilitando o debug
    	session.setDebug(true);

    	// criando a mensagem
    	Message mensagem = new MimeMessage(session);
		InternetAddress emissor = new InternetAddress();	
		Address destino = new InternetAddress();
		
		
		mensagem.setFrom(emissor);
	   	String assunto = "Assunto";
		mensagem.setSubject(assunto);
	   	String msg = "Corpo da Mensagem";
		mensagem.setContent(msg, "text/html;charset=ISO-8859-1");
	   	
	   	mensagem.addRecipient(Message.RecipientType.TO, destino);
	   	Transport.send(mensagem);
	   	
	  
	  ArrayList&lt;String&gt; listaEmail = new ArrayList&lt;String&gt;();
	  int tam=0;
	  int i=0;
	  try {
        BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
        String linha;
        while((linha = in.readLine()) != null){
        	System.out.println(linha);
        	listaEmail.add(linha);
        	linha = destino;
        	sendEmail.enviarEmail(emissor, destino , assunto , msg);
        	i = i+1;
        }
        tam=listaEmail.size();
        System.out.println(tam);
        
        in.close();
    } 
    catch (IOException e){
        // possiveis erros são tratatos aqui
    }
    System.exit(0);
  }
}
nel

Tu não postou o código completo parceiro.
De duas uma, ou não está completo ou tu está fazendo as pressas e se perdendo.

Tem essa linha no código que acabou de postar:

sendEmail.enviarEmail(emissor, destino , assunto , msg);

Cadê o método enviarEmail?
E outra, se ele for um método estático, ele pertence a classe e não a uma instância, portanto, o correto é invocar assim:

Nomedaclasse.enviarEmail(...)

Então poste o código completo que tens ok?
E repito, se esse é o código completo, tu fez as pressas e está invocando método inexistente entre outros :slight_smile:
E não atribui a linha que está percorrendo um valor, ela já recebe um valor no while, que realiza a leitura do arquivo, não faça isso.

Filipe_Sartor

Amigo, não consegui de jeito nenhum enviar para todos usuarios da minha lista .txt, o codigo abaixo é o código inteiro que estou trabalhando, não existe outra classe além destas:

import javax.mail.*;   
import javax.mail.internet.*;     
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Properties;   
  
public class email {   
  
	public class SMTPAuthenticator extends Authenticator {   
		public PasswordAuthentication getPasswordAuthentication() {   
			String username = "[email removido]";   
			String password = "senha";   
			return new PasswordAuthentication(username, password);   
		}   
	}   
  
	public void sendSimpleMail(   
			String mailServer,   
			String subject,   
			String to,   
			String from,   
			String mensagem)   
	throws AddressException, MessagingException {   
  
		Properties mailProps = new Properties();   
		//definição do mailserver   
  
		mailProps.put("mail.smtp.host", mailServer);   
  
		Authenticator auth = new SMTPAuthenticator();   
		Session mailSession = Session.getDefaultInstance(mailProps, auth);   
  
		mailProps.put("mail.smtp.auth", "false");   
  
		//As duas linhas seguintes de código, colocam no   
		//formato de endereços,   
		//supostamente válidos, de email os dados   
		//passados pelos parâmetros to e from.   
		InternetAddress destin = new InternetAddress();   
		InternetAddress remet = new InternetAddress();   
  
		//As duas linhas de código a seguir, são   
		//responsáveis por setar os atributos e   
		//propriedas necessárias do objeto message   
		//para que o email seja enviado.   
		//inicialização do objeto Message   
		Message message = new MimeMessage(mailSession);   
  
		//Definição de quem está enviando o email   
		message.setFrom(remet);   
  
		//define o(s) destinatário(s) e qual o tipo do   
		//destinatário.   
		//os possíveis tipos de destinatário: TO, CC, BCC   
  
		message.setRecipient(Message.RecipientType.TO, destin);   
		//definição do assunto do email   
  
		message.setSubject(subject);   
		//definição do conteúdo da mesnagem e do   
		//tipo da mensagem   
  
		message.setContent(mensagem.toString(), "text/html");   
		//a linha de código seguinte é a responsável   
		//pelo envio do email   
  
		Transport.send(message);   
	}   
	public static void main(String args[]) throws AddressException, MessagingException{   
		email email = new email(); 
 
 
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
			String linha;
			while((linha = in.readLine()) != null){
			System.out.println(linha);
			
			email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", linha,   
					 "Assunto", "Corpo de Teste"); 
		}

			in.close();
		} 
		catch (IOException e){
			// possiveis erros são tratatos aqui
		}	
  
 	}   
}
nel

Beleza!

Agora me fala, com o código completo, está gerando exceção?
E tu não está setando os valores do from e do to.

Filipe_Sartor

Como eu faço para setar os valores do from e do to ?

Este é realmente meu problema agora, neste trecho do código:

public static void main(String args[]) throws AddressException, MessagingException{   
		email email = new email(); 
 
 
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
			String linha;
			while((linha = in.readLine()) != null){
			System.out.println(linha);
			
			
			email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", "[email removido]", "Assunto", "Corpo de Teste"); 
		}

			in.close();
		} 
		catch (IOException e){
			// possiveis erros são tratatos aqui
		}	
  
 	}

Dentro do while quando vou enviar o e-mail email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", "[email removido]", "Assunto", "Corpo de Teste"); não consigo setar
no lugar de "[email removido]" que a variavel to seja o destinatário, somente se eu colocar manual e-mail por e-mail.

Quando faço email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", to , "Assunto", "Corpo de Teste"); o java apresenta esta mensagem:

IWAV0048I Java Bean email started with null constructor

nel

Oi

Veja:

InternetAddress destin = new InternetAddress(); InternetAddress remet = new InternetAddress();

Tu não passou nada no construtor do InternetAddress.
Tu tem que passar ali o e-mail de origem e o de destino.

Se tu não preencher isso, ele não tem como adivinhar.
O e-mail de origem ao que eu vi é fixo e o de destino é o que tu passa para o método, algo como:

InternetAddress remet = new InternetAddress("[email removido]"); InternetAddress destin = new InternetAddress(destino);

Sendo que destino é a String que representa o e-mail de destino.
Faça essas alterações, teste e poste os resultados e o código completo, mesmo se houver exceção.

Filipe_Sartor

Certo, fiz as alterações. Mas continua apresentando a mensagem IWAV0048I Java Bean email started with null constructor

Olhe o código :

import javax.mail.*;   
import javax.mail.internet.*;     
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Properties;   
  
public class email {   
  
	public class SMTPAuthenticator extends Authenticator {   
		public PasswordAuthentication getPasswordAuthentication() {   
			String username = "[email removido]";   
			String password = "senha";   
			return new PasswordAuthentication(username, password);   
		}   
	}   
  
	public void sendSimpleMail(   
			String mailServer,   
			String subject,   
			String to,   
			String from,   
			String mensagem)   
	throws AddressException, MessagingException {   
  
		Properties mailProps = new Properties();   
		//definição do mailserver   
  
		mailProps.put("mail.smtp.host", mailServer);   
  
		Authenticator auth = new SMTPAuthenticator();   
		Session mailSession = Session.getDefaultInstance(mailProps, auth);   
  
		mailProps.put("mail.smtp.auth", "false");   
  
		String destino = null;
		//As duas linhas seguintes de código, colocam no   
		//formato de endereços,   
		//supostamente válidos, de email os dados   
		//passados pelos parâmetros to e from.   
		
		InternetAddress remet = new InternetAddress("[email removido]");
		InternetAddress destin = new InternetAddress(destino);   
		   
  
		//As duas linhas de código a seguir, são   
		//responsáveis por setar os atributos e   
		//propriedas necessárias do objeto message   
		//para que o email seja enviado.   
		//inicialização do objeto Message   
		Message message = new MimeMessage(mailSession);   
  
		//Definição de quem está enviando o email   
		message.setFrom(remet);   
  
		//define o(s) destinatário(s) e qual o tipo do   
		//destinatário.   
		//os possíveis tipos de destinatário: TO, CC, BCC   
  
		message.setRecipient(Message.RecipientType.TO, destin);   
		//definição do assunto do email   
  
		message.setSubject(subject);   
		//definição do conteúdo da mesnagem e do   
		//tipo da mensagem   
  
		message.setContent(mensagem.toString(), "text/html");   
		//a linha de código seguinte é a responsável   
		//pelo envio do email   
  
		Transport.send(message);   
	}   
	public static void main(String args[], String destino) throws AddressException, MessagingException{   
		email email = new email(); 
 
 
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
			String linha;
			while((linha = in.readLine()) != null){
			System.out.println(linha);
			destino = linha;
			
			email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", destino ,"Assunto", "Corpo de Teste"); 
		}

			in.close();
		} 
		catch (IOException e){
			// possiveis erros são tratatos aqui
		}	  
 	}   
}
nel

Olha o que você fez:

String destino = null;  
        //As duas linhas seguintes de código, colocam no     
        //formato de endereços,     
        //supostamente válidos, de email os dados     
        //passados pelos parâmetros to e from.     
          
        InternetAddress remet = new InternetAddress("[email removido]");  
        InternetAddress destin = new InternetAddress(destino);

destino null amigo? Complica dai.
O seu destino é a variavél 'to' que tu passa quando lê o arquivo!

Então deve ser:

InternetAddress destin = new InternetAddress(to);

Se o erro persistir, posta a stacktrace completa.

Filipe_Sartor

Sim, mas continua apresentando somente esta mensagem: IWAV0048I Java Bean email started with null constructor

O código alterado:

import javax.mail.*;   
import javax.mail.internet.*;     
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;   
  
public class email {   
  
	public class SMTPAuthenticator extends Authenticator {   
		public PasswordAuthentication getPasswordAuthentication() {   
			String username = "[email removido]";   
			String password = "senha";   
			return new PasswordAuthentication(username, password);   
		}   
	}   
  
	public void sendSimpleMail(   
			String mailServer,   
			String subject,   
			String to,   
			String from,   
			String mensagem)   
	throws AddressException, MessagingException {   
  
		Properties mailProps = new Properties();   
		//definição do mailserver   
  
		mailProps.put("mail.smtp.host", mailServer);   
  
		Authenticator auth = new SMTPAuthenticator();   
		Session mailSession = Session.getDefaultInstance(mailProps, auth);   
  
		mailProps.put("mail.smtp.auth", "false");   
  

		//As duas linhas seguintes de código, colocam no   
		//formato de endereços,   
		//supostamente válidos, de email os dados   
		//passados pelos parâmetros to e from.   
		
		InternetAddress remet = new InternetAddress("[email removido]");
		InternetAddress destin = new InternetAddress(to);   
  
		//As duas linhas de código a seguir, são   
		//responsáveis por setar os atributos e   
		//propriedas necessárias do objeto message   
		//para que o email seja enviado.   
		//inicialização do objeto Message   
		Message message = new MimeMessage(mailSession);   
  
		//Definição de quem está enviando o email   
		message.setFrom(remet);   
  
		//define o(s) destinatário(s) e qual o tipo do   
		//destinatário.   
		//os possíveis tipos de destinatário: TO, CC, BCC   
  
		message.setRecipient(Message.RecipientType.TO, destin);   
		//definição do assunto do email   
  
		message.setSubject(subject);   
		//definição do conteúdo da mesnagem e do   
		//tipo da mensagem   
  
		message.setContent(mensagem.toString(), "text/html");   
		//a linha de código seguinte é a responsável   
		//pelo envio do email   
  
		Transport.send(message);   
	}   
	public static void main(String args[], String to) throws AddressException, MessagingException{   
		email email = new email(); 
 
 
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
			String linha;
			while((linha = in.readLine()) != null){
			System.out.println(linha);
			to = linha;
			
			email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", to ,"Assunto", "Corpo de Teste"); 
		}

			in.close();
		} 
		catch (IOException e){
			// possiveis erros são tratatos aqui
		}	  
 	}   
}
nel

Pode ser problema de sessão e/ou teu servidor de e-mail.

Essa linha:

Session mailSession = Session.getDefaultInstance(mailProps, auth);

Altera para:

Session mailSession = Session.getInstance(mailProps, auth);

E essa:

mailProps.put("mail.smtp.auth", "false");

Para

mailProps.put("mail.smtp.auth", "true");

O resto mantém igual.

Filipe_Sartor

Mas porque envia email quando seto um endereço de email manualmente no lugar de to ?

nel

Filipe Sartor:
Mas porque envia email quando seto um endereço de email manualmente no lugar de to ?

Ah meu camarada, dá um System.out.prinln() porque provavelmente deve estar indo nulo esse endereço!
Senão está nulo pode estar vazio! Veja o e-mail que está tentando enviar.

Filipe_Sartor

Encontrei este aviso:

Keybinding conflicts occurred. They may interfere with normal accelerator operation.

A exceção do rastreio da pilha não está disponível.

diego.sas

Fala Filipe Sartor.

Brother se quando você seta o email manualmente é enviado, so pode ser uma coisa.

Na hora em que “to” recebe o email do arquivo, está vindo mal formatado, ou com excesso de espaços…
Debbuga este trecho do código e certifica-se de como é recebido o email.

Abraços.

Filipe_Sartor

Deu certo Nobres colegas, realmente a variável to estava passando vazia.

Muito obrigado pela ajuda!
Abraço!

segue código abaixo:

import javax.mail.*;   
import javax.mail.internet.*;     
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;   
  
public class EnviaEmail {
    private static String to;
     private static String mensagem;
     
	public class SMTPAuthenticator extends Authenticator {   
		public PasswordAuthentication getPasswordAuthentication() {   
			String username = "[email removido]";   
			String password = "senha";   
			return new PasswordAuthentication(username, password);   
		}   
	}   
  
	public void sendSimpleMail(   
			String mailServer,   
			String subject,   
			String to,   
			String from,   
			String mensagem)   
	throws AddressException, MessagingException {   
  
		Properties mailProps = new Properties();   
		//definição do mailserver   
  
		mailProps.put("mail.smtp.host", mailServer);   
  
		Authenticator auth = new SMTPAuthenticator();   
		Session mailSession = Session.getInstance(mailProps, auth);   
  
		mailProps.put("mail.smtp.auth", "true");   
  

		//As duas linhas seguintes de código, colocam no   
		//formato de endereços,   
		//supostamente válidos, de email os dados   
		//passados pelos parâmetros to e from.   
		
		InternetAddress remet = new InternetAddress("[email removido]");
		InternetAddress destin = new InternetAddress(to);   
  
		//As duas linhas de código a seguir, são   
		//responsáveis por setar os atributos e   
		//propriedas necessárias do objeto message   
		//para que o email seja enviado.   
		//inicialização do objeto Message   
		Message message = new MimeMessage(mailSession);   
  
		//Definição de quem está enviando o email   
		message.setFrom(remet);   
  
		//define o(s) destinatário(s) e qual o tipo do   
		//destinatário.   
		//os possíveis tipos de destinatário: TO, CC, BCC   
  
		message.setRecipient(Message.RecipientType.TO, destin);   
		//definição do assunto do email   
  
		message.setSubject("Férias Coletivas IBRAP/ESAF");   
		//definição do conteúdo da mesnagem e do   
		//tipo da mensagem   
  
		message.setContent(mensagem.toString(), "text/html;charset=ISO-8859-1");   
		//a linha de código seguinte é a responsável   
		//pelo envio do email   
                
                
		Transport.send(message);   
	}   
	
        public static void main(String args[]) throws AddressException, MessagingException{   
		
            EnviaEmail email = new EnviaEmail(); 
		
 
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Documents and Settings/Filipe/Desktop/listaemail.txt"));
			String linha;
			while((linha = in.readLine()) != null){
			System.out.println(linha);
			to = linha;
                        
			
			email.sendSimpleMail("smtp.ibrap.ind.br", "TESTE", to ,"IBRAP/ESAF", "mensagem" );
                                 }
			in.close();
		} 
		catch (IOException e){
			// possiveis erros são tratatos aqui
		}	  
 	}   
}
diego.sas

Edita o título do seu 1º post para resolvido.
Flw

Criado 16 de novembro de 2011
Ultima resposta 18 de nov. de 2011
Respostas 23
Participantes 3