Alerta de e-mail usando java

Ola. Gostaria de saber se tem como fazer um programa em java para alerta de e-mail. No caso, eu tenho um programa que manda e-mail e tudo mais, só que eu precisava que, quando a pessoa recebesse o e-mail, além do e-mail, iria um alerta de aviso “Seu e-mail chegou” bem no meio da tela do computador (tipo uma pop-up ou estilo quando você está no msn e recebe um e-mail). Teria como fazer isto??

Muito obrigado!

[quote=marcus.rodrigues]Ola. Gostaria de saber se tem como fazer um programa em java para alerta de e-mail. No caso, eu tenho um programa que manda e-mail e tudo mais, só que eu precisava que, quando a pessoa recebesse o e-mail, além do e-mail, iria um alerta de aviso “Seu e-mail chegou” bem no meio da tela do computador (tipo uma pop-up ou estilo quando você está no msn e recebe um e-mail). Teria como fazer isto??

Muito obrigado![/quote]

Isso é mais chato que parece; e se pensar bem, você não precisa disso.

Por exemplo, se o destinatário é alguém que está usando o MS Outlook ou o Lotus Notes ou algum outro software corporativo de email, esse tal software já faz isso (mostrar o aviso de recebimento de nova mensagem).

Se o destinatário é um endereço do Google Mail ou do Yahoo Mail e se ele tiver o Google Toolbar ou o Yahoo Toolbar e se estiver configurado para dar avisos de email, isso também ocorre. Acho que o Microsoft HotMail também deve ter algum recurso parecido (sorry, nunca tive uma conta no Hotmail nem no MSN então não sei como e se funciona.)

Em outros casos, você precisa fazer um software que fique varrendo constantemente a caixa postal do usuário (e pode acreditar, amigo, isso é bem chato de fazer, porque é diferente para cada provedor de email, e pode até ser que não seja possível fazer isso), e inspecionando se chegou o tal email de confirmação. Isso quer dizer que vai ser um software bem intrometido e talvez muito pesado, se você resolver fazer em Java.

Caso queira fazer isso , e necessario fazer um cliente pop3 para ficar lendo sua caixa de mensagens toda hora . Da um pouco de trabalho fazer , mas voce vai aprender muitas coisa relacionadas a redes . Busque por client pop3 no google , de uma olhada neste exemplo http://www.inf.u-szeged.hu/~bilickiv/h_op/jegyzetek/client_socket.html . Flw

hum…isso tb poderia ser uma boa, mas é o seguinte: Eu só quero que apareça essa pop-up quando receber um e-mail específico (ex: so apareça msg quando r eceber e-mail de abc@jjj.com.br) entenderam?

No caso, n precisaria ficar atualizando o e-mail de tempo em tempo…apenas ir uma pop-up junto com o e-mail escolhido para isso.

É que eu vou utilizar o programa pra eu mandar o e-mail e um conhecido meu receber, entao eu que enviaria a msg com o pup-up…

Bom, obrigado pelas ajudas!! Mas se derem para me ajudar novamente eu agradeço!

Obrigado!

Nesse caso vc teria que combinar um regex com o leitor do pop3, que verficaria se foi de tal origem , mas seria inevitável a verificação periódica do e-mail… Pensando que o e-mail seria conferido pelo cliente.

Por outro lado, como alternativa, você arruma um servidor, que fará o trabalho de verificar X e-mails pop3, e avisar ao cliente que chegaram os e-mails que ele espera tanto…Onerando menos a máquina do cliente.

SE pensar até mesmo usando ajax vc consegue esse efeito(talvez até de forma mais simples)

hum…entendi!!

O problema é que eu n manjo fazer quase nada doq vc flw >.<…só java mesmo que tenho noção e tals…

mas ok, vou procurar na internet sobre estas coisas pra aprender e tentar fazer!!

Brigadão ae!!

Marcus, agora entendi o que você quer. O que você quer é saber se uma mensagem foi lida pelo destinatário.

Havia um tempo em que isso era relativamente fácil de fazer - bastava você pôr um campo adicional no cabeçalho do email ( “Return-Receipt-To:” ) e o software para ler emails já lhe mandava um email de “recibo” de volta. Hoje em dia, as pessoas usam web mails e a maior parte dos web mails não se digna a responder esses recibos; ou então você usa um Outlook ou um Thunderbird ou um Lotus Notes, que ficam lhe perguntando se você quer mandar um recibo de volta ou não, em vez de mandarem automaticamente.

Ele quer que seja avisado que foi recebido e-mail de determinado destinatário…

ah, n é bem isso que eu quero…

É o seguinte: eu trabalho em uma empresa de cobrança (telemarketing ativo). Os cobradores abrem chamado para pagamentos, acordos, etc com os clientes. Mas, as vezes, um cliente chega no banco e liga pra gente avisando que quer receber o boleto via e-mail ou fax naquele exato momento. Porém, quem recebe esta ligação é o cobrador e ñ minha equipe do data center/contabilidade ( no caso a gente que envia o boleto depois de receber a solicitação). O problema é que demora um pouco pra gente ler os e-mails e tals…isso acaba prejudicando o serviço da empresa…Então minha equipe decidiu criar um programa (ou pegá-lo pronto) para, quando um cobrador receber esta ligação, ele mandar um e-mail nos avisando, mas, a gente precisa de algum alerta dizendo “e-mail com urgencia”, pra parar tudo que está fazendo e priorizar esta tarefa. Então por isso queria que o e-mail, além do conteúdo, viesse com um alerta, que de preferência aparecesse uma janela de aviso no meio da tela do computador. Agora ficou mais claro minha situação ne?? Se puderem continuar me ajudando eu agradeço!!

Obrigado.

Bom criar um programa não é necessáriamente uma solução… existe como definir prioridades aos e-mails…
porém como não é isso que você parece querer. .eu acho legal, você colocar um serviço em java que fique lendo os e-mails e quando tiver um que seja urgente como é esse caso. Ele envia uma mensagem para o receptor de tal menságem (ele teria que ter os ips de cada um associados ao e-mail ou algo do genero, na verdade teria que ser mais complexo, teria que cada cliente avisar que está online e dizer o seu e-mail e IP de tempos em tempos). Quando esse serviço percebece que existe um e-mail com características de urgÊncia, ele enviaria uma menságem para o atendente que teria instalado na sua máquina um programa java cliente preparado para receber esse tipo de mensagem. Assim ele reagiria informando com algum barulho ou pop up…

hum…ate entendi o que você falou…o problema é: como fazer?? hehe

Eu ñ tenho idéia nem por onde começar…

num teria uma mãozinha pra mim?? hehe

Obrigado!

Bom eu nunca fiz também, mas se fosse fazer, iria procurar tutoriais como fazer comunicação utilizando socket, aplicações swing(para dar os alertas), e sobre o pop3 para ler os e-mails no servidor.Que também tem uma biblioteca !

mando por esse aqui manda tudo certinho mas nao sei como fazer para ler os email 


  private String mailSMTPServer;   
    private String mailSMTPServerPort;   
    private File arquivo=null; 
        private String from="sua conta@gmail.com";  
  private String senha="sua senha";  
     
  Email(String mailSMTPServer, String mailSMTPServerPort) { 
        this.mailSMTPServer = mailSMTPServer;   
        this.mailSMTPServerPort = mailSMTPServerPort;   
    }   

  public void Email( String to, String subject, String message) {              
        Properties props = new Properties();   
  
  
        props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP   
        props.put("mail.smtp.starttls.enable","true");   
        props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL   
        props.put("mail.smtp.auth", "true"); //ativa autenticacao   
        props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)   
        props.put("mail.debug", "true");   
        props.put("mail.smtp.port", mailSMTPServerPort); //porta   
        props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket   
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");   
        props.put("mail.smtp.socketFactory.fallback", "false");   
               
        SimpleAuth auth = null;   
        auth = new SimpleAuth ("seuusuarioparalogin","suasenhaparalogin");   
           

        Session session = Session.getDefaultInstance(props, auth);   
        session.setDebug(true); //Habilita o LOG das ações executadas durante o envio do email   
  
        //Objeto que contém a mensagem   
        Message msg = new MimeMessage(session);   
  
        try {   
            //Setando o destinatário   
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));   
            //Setando a origem do email   
            msg.setFrom(new InternetAddress(from));   
            //Setando o assunto   
            msg.setSubject(subject);   
            //Setando o conteúdo/corpo do email   
            msg.setContent(message,"text/plain");   
  
  
        } catch (Exception e) {   
            System.out.println(">> Erro: Completar Mensagem");   
            e.printStackTrace();   
        }  
      
        Transport tr;   
        try {   
            tr = session.getTransport("smtp"); //define smtp para transporte   

            tr.connect(mailSMTPServer, "fabiodurgante", senha);   
            msg.saveChanges(); 


            
            tr.sendMessage(msg, msg.getAllRecipients()); 
 JOptionPane.showMessageDialog(this, "Email Send success", "Mensagem", JOptionPane.INFORMATION_MESSAGE);    
   arquivo=null;
            
            tr.close();   
        } catch (Exception e) {   
            JOptionPane.showMessageDialog(this, "Erro ao enviar Email", "ERRO", JOptionPane.ERROR_MESSAGE);    
            // TODO Auto-generated catch block   
            System.out.println(">> Erro: Envio Mensagem");   
            e.printStackTrace();   
        }   
  
       
       }

class SimpleAuth extends Authenticator {   
    public String username = null;   
    public String password = null;   
 
  
    public SimpleAuth(String user, String pwd) {   
        username = user;   
        password = pwd;   
    }   
  
  
           
 }

baseado nisso ai como poeria fazer para ler email ???????? esta mandando tudo certo

Esse código que você mandou manda alerta pra pesso junto com o e-mail ou só manda o e-mail??

Obrigado!

[quote=marcus.rodrigues]Esse código que você mandou manda alerta pra pesso junto com o e-mail ou só manda o e-mail??

Obrigado![/quote]

Amigo, você já percebeu que a pessoa que vai receber o email tem de ter um programa que fica inspecionando a caixa postal e dá o tal alerta? Ou seja, você não deve se preocupar com isso.

(Só para pensar um pouco - pensar não dói. Imagine se você fosse um cara daqueles que fazem milhões e milhões de mensagens de spam. Se houvesse uma forma de o spammer ficar fazendo um monte de alertas no seu micro sem ele ter de instalar programa nenhum, você não iria chamar um matador de aluguel para eliminá-lo? )

ah…com crtz…mas este não é o meu intuito…

mas ok, vou providenciar uma caixa de entrada com verificação de e-mail…depois vou enviar o e-mail apenas…

deve ser o jeito…

Muito Obrigado!!