seguinte galera eu tenho um programa que envia email que fiz para um amigo, e ele agora me pediu para que eu controle no programa os emails que foram enviados com sucesso, os que deram erro de envio e os que não foram enviados e se possível saber se o cara que recebeu o email leu o email ou deletou.Eu pesquisei bastante e descobri que no javamail vc pode incluir eventos para monitorar as mensagens enviadas, beleza só que quando adiciona os eventos eles não me mostram os emails com erro nem as outras coisas que quero saber, será que alguém já fez algo parecido ??? o código ta abaixo porfavor me ajudem resolvendo isso será últim pra todo mundo esse projeto.
import java.util.Properties;
import javax.mail.;
import javax.mail.event.TransportEvent;
import javax.mail.event.TransportListener;
import javax.mail.internet.;
import java.io.*;
public class Class1 {
public static void main(String[] args) {
/* Envia email com uma página html no corpo do email */
String line1 = null;
String smtpHost = "mail.weba.com.br";// args[0];
String to = ""; // Argumento do arquivo txt de emails;
String from = "odontologia@weba.com.br"; // args[1];
String contentType = "text/html";
String htmlFile = "C:/eclipse-SDK-3.2-win32/workspace/NewLaster/inco25.htm"; // arg2[2]
String EmailTxt = "C:/eclipse-SDK-3.2-win32/testeemail.txt"; //args[3].toString();
String LogArqEnv = "C:/eclipse-SDK-3.2-win32/workspace/NewLaster/LogArqEnv.txt";// args[4] arquivo de log dos emails enviados
// String EmailTxt = “C:/eclipse-SDK-3.2-win32/workspace/NewLaster/teste.txt”; //args[3].toString();
String msg = “”;
int Contador = 0;
// Get properties object
Properties props = System.getProperties();
// Define SMTP host property
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "25");
try {
//Criando o arquivo de log de emails gerados
FileWriter writer = new FileWriter(LogArqEnv);
PrintWriter saida = new PrintWriter(writer);
//Lendo arquivo de emails
FileReader fr1 = new FileReader(EmailTxt);
BufferedReader br1 = new BufferedReader(fr1);
while ((line1 = br1.readLine()) != null) {
to = line1; //Recupera a linha a que contém o email a ser enviado
Contador ++;
// Get a session
Session session = Session.getDefaultInstance(props);
// Create a new message object
MimeMessage message = new MimeMessage(session);
message.setText(msg.toString(), "ISO-8859-1");
message.setSubject("Boletim INC");
message.setFrom(new InternetAddress(from,"WF - INC"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// le o HTML e preapara ele para envio
int conta = 0;
String line = null;
FileReader fr = new FileReader(htmlFile);
BufferedReader br = new BufferedReader(fr);
while ((line = br.readLine()) != null) {
if (conta == 0)
msg = “Prezado Sr. Kleber”;
else
msg += line;
conta++;
}
// adiciona o contéudo a mensagem
message.setContent(msg, contentType);
// Define transport
// obtém uma instância do objeto que vai fazer o envio da mensagem, setando
// o protocolo utilizado
Transport transport = session.getTransport(“smtp”);
TransportListener listener = new TransportListener() {
public void messageDelivered(TransportEvent e) {
Address[] valid = e.getValidSentAddresses() ;
System.out.println("Email entregue com sucesso " + valid[0]);
}
public void messageNotDelivered(TransportEvent e) {
Address[] invalid = e.getInvalidAddresses() ;
System.out.println("Endereço de Email incorreto " + invalid[0]);
}
public void messagePartiallyDelivered(TransportEvent e) {
Address[] invalid2 = e.getValidUnsentAddresses() ;
System.out.println("Endereço Correto de Email mais o Email não foi recebido " + invalid2[0]);
}
};
transport.addTransportListener(listener);
// faz a conexao com o host
transport.connect(smtpHost, 25, “odontologia@webforma.com.br”, “cowf”);
transport.sendMessage(message, message.getAllRecipients());
}
}catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
catch (MessagingException mex){
System.err.println(mex.getMessage());
}
msg = "";
}
//Fecha os arquivos usados para gravar o log do emails enviados.
//saida.println("Total de E-mails Enviados:" + Contador); // grava o email no arquivo de saída
//saida.close();
//writer.close();
//System.out.println("Total de E-mails Enviados:" + Contador);
//} catch (Exception e) {
// System.err.println(e.getMessage() + e.getCause()
// + e.getLocalizedMessage() + e.getStackTrace());
//}
//}
}