Problema para enviar e-mail com javax.mail (servidor de e-ma

2 respostas
Z

Bom dia… Ontem tinha postado aqui sobre alguns problemas em enviar e-mail com o pacote javax.mail. Felizmente esses problemas jah foram resolvidos, mas surgiram outros, segue o fragmento de código que coloco no action de um botão:

**Estou usando o netbeans 5.5 com visual webpack

String to = "[email removido]";                   
        String from = "cliente";                         
        String subject = "nenhum";                 
        String message = "teste";        
        String mailhost = "smtp.matriztec.com.br"; 
        //String mailhost = "mail.twc.com.br"; //
        String user = "user"; //              
        String password = "pwd"; //                       
        boolean auth = true; //
        boolean ssl = false;
        Properties props = System.getProperties();       
        if (mailhost != null) {
            props.put("mail.smtp.host", mailhost);
        }
        if (auth) {
            props.put("mail.smtp.auth", "true");
        }        
        javax.mail.Session session = javax.mail.Session.getInstance(props, null);   
        javax.mail.Message msg = new MimeMessage(session);        
        try {
            msg.setFrom(new InternetAddress(from));
            msg.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
            msg.setSubject(subject);
            msg.setSentDate(new Date());
            msg.setText(message);                    
            SMTPTransport t = (SMTPTransport)session.getTransport(ssl ? "smtps" : "smtp");
            try {
                if (auth)
                    t.connect(mailhost, user, password);
                else
                    t.connect();
                t.sendMessage(msg, msg.getAllRecipients());
            } finally {
                t.close();
            }
            warn("E-mail enviado com sucesso. Aguarde nosso contato. Obrigado.");
            
        } catch (Exception e) {
            error("Não foi possível enviar seu e-mail. Tente novamente em alguns instantes. \n" + e.toString());
	}

nesse caso a exceção que gera é a seguinte:
javax.mail.SendFailedException: Invalid Addresses; nested exception is: class javax.mail.SendFailedException: 550 <matriztec>: Sender address rejected: User unknown in local recipient table

notem que a flag auth tá setada como true, se eu deixar ela false gera a exceção:
javax.mail.AuthenticationFailedException

mas eu liguei pro provedor dessa empresa q eu tô desenvolvendo e falaram q não precisa de autenticação e não souberam me dizer o host do servidor de e-mail… dando um ping no “chutômetro” no endereço acima (smtp.matriztec.com.br) descobri q o endereço existe, mas como posso saber se é esse mesmo? como posso descobrir o endereço do host de e-mail?? se precisar de autenticação eu preciso informar a senha e usuário da conta de e-mail?? para mandar e-mail para pop funciona do mesmo tipo?? hehe, várias perguntas… qq coisa ajuda… abraço

2 Respostas

C

Tente seguir esse exemplo: http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=28180&highlight=erro+javamail

W

nesse caso a exceção que gera é a seguinte:
javax.mail.SendFailedException: Invalid Addresses; nested exception is: class javax.mail.SendFailedException: 550 <matriztec>: Sender address rejected: User unknown in local recipient table

notem que a flag auth tá setada como true, se eu deixar ela false gera a exceção:
javax.mail.AuthenticationFailedException

mas eu liguei pro provedor dessa empresa q eu tô desenvolvendo e falaram q não precisa de autenticação e não souberam me dizer o host do servidor de e-mail… dando um ping no “chutômetro” no endereço acima (smtp.matriztec.com.br) descobri q o endereço existe, mas como posso saber se é esse mesmo? como posso descobrir o endereço do host de e-mail?? se precisar de autenticação eu preciso informar a senha e usuário da conta de e-mail?? para mandar e-mail para pop funciona do mesmo tipo?? hehe, várias perguntas… qq coisa ajuda… abraço

Seguinte amigão, vamos por partes…hehehe
Eu enfrentei um problema parecido e o que pode estar ocasionando isso é o seguinte : o servidor de smtp está verificando se o seu “from”

String from = “cliente”;
é um usuario registrado, por exemplo : “[email removido]”, por tanto, vc deve setar um “from” com um usuário válido.

Quanto a sua autenticação, realmente não irá funcionar …vc deve fazer da seguinte forma :
1 - Crie uma Classe chamada Autenticador

public class Autenticador extends Authenticator &#123; private String usr; private String pwd; public Autenticador&#40;String usr, String pwd&#41; &#123; this.usr = usr; this.pwd = pwd; &#125; public PasswordAuthentication getPasswordAuthentication&#40;&#41; &#123; return new PasswordAuthentication&#40;this.usr, this.pwd&#41;; &#125; &#125;

2 - Depois utilize a autenticação dessa forma :

props.put&#40;&quot;mail.smtp.auth&quot;, &quot;true&quot;&#41;; javax.mail.Session session = Session.getInstance&#40;props, new Autenticador&#40;&quot;usuario&quot;, &quot;senha&quot;&#41;&#41;;

Falows !

Criado 17 de julho de 2007
Ultima resposta 19 de jul. de 2007
Respostas 2
Participantes 3