Javamail

17 respostas
S

Ola galera estou tentando enviar um email para uma pessoa no hotmail e esta dando este erro quando clico em enviar

535 5.0.0 Authentication Failed
java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 535 5.0.0 Authentication Failed

veja meu codigo:

Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", "smtp.live.com");
        props.put("mail.smtp.socketFactory.port", "587");
        props.put("mail.smtp.socketFactory.fallback", "false");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "587");

        Session session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {

                    @Override
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(u, p);
                    }
                });
        /** Ativa Debug para sessão */
        session.setDebug(true);
        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("[email removido]")); //Remetente

            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse([email removido])); //Destinatário(s)
            message.setSubject("Enviando email com JavaMail");//Assunto
            message.setText("Enviei este email utilizando JavaMail!");
            /**Método para enviar a mensagem criada*/
            Transport.send(message);
            System.out.println("Feito!!!");
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }

17 Respostas

R

Se não estou enganado a porta smtp do Hotmail é 25 e não 587.

A

cara,

da uma olhada no Commons Email muito mais facil e traquilo de se usar.
Fica a dica.

t+

S

mesmo erro na porta 25 :frowning:

M

acho q o hotmail nao tem esse tipo de suporte, pois o hotmail usa autenticacao via http.

[]'s

R

mauricioadl:
acho q o hotmail nao tem esse tipo de suporte, pois o hotmail usa autenticacao via http.

[]'s

Tem sim, eu já usei o JavaMail para isso com Hotmail. Vou testar aqui o código que tenho depois posto uma resposta.

M

romarcio:
mauricioadl:
acho q o hotmail nao tem esse tipo de suporte, pois o hotmail usa autenticacao via http.

[]'s

Tem sim, eu já usei o JavaMail para isso com Hotmail. Vou testar aqui o código que tenho depois posto uma resposta.

vou testar tbm so por curiosidade.

[]'s

R

Ok, sem problemas com Hotmail.

Executei por uma classe que usei para um tutorial sobre Javamail: Enviando email com a API JavaMail

M

realmente nao consegui com o hotmail.
testei as portas 25, 465, 587,.
testei com e sem startls.
testei com e sem autenticação.

nao pode ser e-mail do yahoo? costumo usar sempre ele.

F

Apenas uma sugestão.
da uma olhada nisso…http://www.guj.com.br/java/256777-duvida-com-common-mail-

é uma ótima biblioteca. Troquei minhas JavaMail por essa ae, além de ser muito mais simples de implementar :wink:

t+ e boa sorte.

R
samuelM:
Ola galera estou tentando enviar um email para uma pessoa no hotmail e esta dando este erro quando clico em enviar
535 5.0.0 Authentication Failed
java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 535 5.0.0 Authentication Failed

veja meu codigo:

Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", "smtp.live.com");
        props.put("mail.smtp.socketFactory.port", "587");
        props.put("mail.smtp.socketFactory.fallback", "false");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "587");

        Session session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {

                    @Override
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(u, p);
                    }
                });
        /** Ativa Debug para sessão */
        session.setDebug(true);
        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("[email removido]")); //Remetente

            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse([email removido])); //Destinatário(s)
            message.setSubject("Enviando email com JavaMail");//Assunto
            message.setText("Enviei este email utilizando JavaMail!");
            /**Método para enviar a mensagem criada*/
            Transport.send(message);
            System.out.println("Feito!!!");
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }

Testei esse código e ta funcionando. Você deve estar errando a senha ou usuário para dar erro de autenticação.

S

Fernando:

org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587
        at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
S

romarcio:

535 5.0.0 Authentication Failed
java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 535 5.0.0 Authentication Failed
R
samuelM:
romarcio:
535 5.0.0 Authentication Failed
java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 535 5.0.0 Authentication Failed

Como eu já disse, não tem nenhum problema com o Hotmail. Testei o meu código e o seu código e funcionou sem problemas.
Esse erro acontece quando ele não consegue a autenticação no servidor por conta da senha ou usuário errados.

Lembre-se, o usuário deve ser: [email removido] e a senha idêntica 'A123' != de 'a123'.

S

usuario e senha estao corretos testei com outros emails porem nao vai :frowning: :frowning: :frowning:
tipo o meu email n precisa ser obrigatoriamente hotmail né ? pode ser terra ou um host proprio né?
só para quem vou enviar q é hotmail!!!

R

samuelM:
usuario e senha estao corretos testei com outros emails porem nao vai :frowning: :frowning: :frowning:
tipo o meu email n precisa ser obrigatoriamente hotmail né ? pode ser terra ou um host proprio né?
só para quem vou enviar q é hotmail!!!

Mas espera ai.
O seu problema é na autenticação de quem envia o email.

535 5.0.0 Authentication Failed java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 535 5.0.0 Authentication Failed

Quem recebe pode ser qualquer um e não vai gerar erro se não receber.

S

Era isso mesmo pco, estava autenticando errado deu certinho vlw pela força!!!

E me fala uma coisa n existe nenhum tiipo de controle no javamail para notificar se alguem nao recebeu meu email???

R

samuelM:
Era isso mesmo pco, estava autenticando errado deu certinho vlw pela força!!!

E me fala uma coisa n existe nenhum tiipo de controle no javamail para notificar se alguem nao recebeu meu email???

Na verdade isso não compete ao JavaMail e sim ao servidor do remetente ou do destinatário, dependendo da situação.

Se acontecer, uma mensagem de “não entregue” é enviada para a conta do email remetente. Para recuperar essa mensagem dai você terá que usar o protocolo POP como uma rotina a parte da rotina de envio.

Criado 21 de dezembro de 2011
Ultima resposta 22 de dez. de 2011
Respostas 17
Participantes 5