Erro ao receber e-mail de aplicação Java

1 resposta
kraysek

Pessoal, sei que o assunto foi muito discutido neste fórum, mas já pesquisei aqui e em outros fóruns e não consigo resolver um problema talvez simples:
Minha aplicação envia e-mail corretamente, através do gmail (conta: [email removido]). No entanto, quando tento enviar um email para mim através de um formulário jsp, não consigo setar o remetente. Recebo a mensagem com o remetente

[email removido]
e destinatário
[email removido]
quando deveria ser remetente:
[email removido]

public class Mensageiro {
    public static final String DESTINATARIO = "[email removido]";
    public static final String HOST = "gmail-smtp.l.google.com";
   
    
    
    public String enviarMensagem(String remetente, String assunto, String corpo){
        //os parametros são recebidos corretamente
        String retorno=""; //mensagem de sucesso ou erro no envio de mensagem
        try{
            Properties props = System.getProperties();
            // Setup mail server
            props.put("mail.smtp.host", HOST);  
            props.put("mail.smtp.starttls.enable", "true");  
            props.put("mail.smtp.auth", "true");  
            props.put("mail.mime.charset", "ISO-8859-1");  
            props.put("mail.smtp.port", "465");  
            props.put("mail.smtp.socketFactory.port", "465");  
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
            // Get session
            Session session = Session.getDefaultInstance(props, new SMTPAuthenticator());
            // Define message
            MimeMessage mensagem = new MimeMessage(session);
            mensagem.setFrom(new InternetAddress(remetente));
            mensagem.addRecipient(Message.RecipientType.TO, new InternetAddress(DESTINATARIO));
            mensagem.setSubject(assunto);
            mensagem.setText(corpo);
            // Send message
            Transport.send(mensagem);
            retorno = "Mensagem enviada com sucesso...";
        }
        catch (Exception e){
            retorno = (e.toString());
        }
        return (retorno);
    }
    
    private class SMTPAuthenticator extends javax.mail.Authenticator {
        public javax.mail.PasswordAuthentication getPasswordAuthentication() {
           String username = "[email removido]";
           String password = "minhaSenha";
           return new javax.mail.PasswordAuthentication(username, password);
        }
    }
  
}// fim da classe

Já tentei os metodos setfrom e setSender...

1 Resposta

jmoreira

Eu não sabia que poderia usar os servidores SMTP do google para enviar e-mail. Muito bacana isso!

Cara, tente usar o Message.RecipientType.CC ao invés de Message.RecipientType.TO. Assim você deixa o TO vazio. Isso já funcionou comigo. Mas acredito que isso deve ser configuração interna do servidor SMTP + Firewall.

Criado 30 de março de 2008
Ultima resposta 30 de mar. de 2008
Respostas 1
Participantes 2