Autenticação SMTP

3 respostas
furutani

Olá GUJ
Estou com problema para enviar um email. Segundo esse documento eu deveria criar uma classe

public class Autenticacao extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { System.out.println("Autenticando.."); return new PasswordAuthentication("usuario", "senha"); } }
e passa uma instância dela qdo eu for obter uma instância da session

Properties props = new Properties(); props.put("mail.smtp.host", servidor); return Session.getDefaultInstance(props, new Autenticacao());
O problema é que mesmo se a senha estiver errada o email é enviado. Sim… o email é enviado. Ai entra mais um mistério… isso funciona na minha máquina e só se eu enviar para emails do mesmo dominio do server no caso emails furutani.eti.br caso contrário dá erro.
Se eu colocar essa mesma classe no servidor de hospedagem dá esse erro

Could not connect to SMTP host: mail.furutani.eti.br, port: 25; nested exception is: java.net.ConnectException: Connection refused

E parece que o método getPasswordAuthentication() não é chamado pois a string “Autenticando…” não aparece no console.
Eu já tentei assim tbém Transport transport = session.getTransport(); transport.connect(host, username, senha);
Não funcionou.

Alguém já passou por isso e pode me ajudar?

Grato

3 Respostas

rodrigo_gomes

Olá,

qd voce tenta

Transport transport = session.getTransport();
transport.connect(host, username, senha);

da o mesmo erro de Connection refused ?

esse post pode ajudar em algo
http://www.guj.com.br/posts/list/10197.java

furutani

rodrigo_gomes:
Olá,

qd voce tenta

Transport transport = session.getTransport();
transport.connect(host, username, senha);

da o mesmo erro de Connection refused ?


Sim

Eu já tinha visto esse post, foi dai que fiz as minhas primeiras tentativas.
Valew

furutani

Resolvi :smiley: :smiley: :smiley:
Crei uma classe que extende Authenticator

public class Autenticacao extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { System.out.println("Autenticando..."); return new PasswordAuthentication("usuario", "senha"); } }
Tive que por mais uma propriedade além do mail.smtp.host, então ficou assim

private static Session getSession() { Properties props = new Properties(); props.put("mail.smtp.host", servidor); props.put("mail.smtp.auth", "true"); return Session.getDefaultInstance(props, new Autenticacao()); }

Ai funcionou!!! viva!

Criado 27 de julho de 2005
Ultima resposta 27 de jul. de 2005
Respostas 3
Participantes 2