Pessoal estou tentando enviar um email autenticado, mas estou obtento o seguinte erro:
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
se eu tentar fazer :
mailSession.getTransport().connect();
recebo a seguinte exceção:
javax.mail.NoSuchProviderException: Invalid protocol: null
at javax.mail.Session.getProvider(Session.java:412)
at javax.mail.Session.getTransport(Session.java:631)
at javax.mail.Session.getTransport(Session.java:612)
alguma dica, e a 1 vez que uso a api java mail abaixo segue meu codigo:
[code]
public void sendMail(String to) throws AddressException, MessagingException{
Properties properties = new Properties();
properties.put("mail.smtp.host", mailServer);
properties.put("mail.smtp.auth", "true");
Authenticator auth = new Autenticar();
Session mailSession = Session.getInstance(properties, auth);
InternetAddress remetente = new InternetAddress(from);
InternetAddress destinario = new InternetAddress(to);
Message objMsg = new MimeMessage(mailSession);
objMsg.setFrom(remetente);
objMsg.setRecipient(Message.RecipientType.TO, destinario);
objMsg.setSubject(subjact);
objMsg.setContent(msg.toString(), "text/plain");
Transport.send(objMsg);
}[/code]
valeu
Coloque aqui o código de envio… está autenticando em qual server ?
Servidor aqui do trabalho, (MDS): o metodo que envia esta postado acima !
Sim, o método está logo acima… mas o código “cliente” não está. Como você está chamando esse método ?
Outra coisa, você só está passando como parâmetro a variável to. Onde estão as outras variáveis: from, remetente, subjact, destinario msg ?
Esses parametros estao em um arquivo properties, agora nao estou com os fontes aqui, mas irei posta,quando chegar ao trab. mas estou pensando em usar o commons-mail da jakarta, implementei o metodo rapidinho so nao testei ainda rs…ja teve contato com essa API ?
Já tive contato. Mas no fundo é tudo JavaMail
ai tio, o codigo assima funcionou, o problema estava na comunicação entre o pessoal da rede e o desenvolvimento hahaha, eu estava tentado autenticar com o endereço de remente, ao inves do login de rede… agora foi, mas obtei em utilizar o commons pois o codigo fica bem simples pequeno, gostei segue abaixo o metodo, testato e funcionando caso alguem utilizar.
/**
* Metodo de envio de email
* Messagem automatica , os parametros como server, usuario, senha
* sao conf no email.properties
**/
public void sendMail(String to) {
try {
SimpleEmail email = new SimpleEmail();
email.setDebug(true);
email.setHostName(mailServer);
email.setSmtpPort(Integer.parseInt(port));
email.setFrom(from);
email.setSubject(subjact);
email.addTo(to);
email.setAuthentication(usuario, senha);
email.setMsg(msg);
email.send();
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}