Problema com JavaMail

7 respostas
J

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:
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);
    }

valeu ;)

7 Respostas

M

Olá JVander;
Dá uma olhada nesse tópico. Acho que vai te ajudar.

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=28180&highlight=

G

Coloque aqui o código de envio… está autenticando em qual server ?

J

Servidor aqui do trabalho, (MDS): o metodo que envia esta postado acima !

G

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 ?

J

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 ?

G

Já tive contato. Mas no fundo é tudo JavaMail :grin:

J

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();
		}
    }
}
Criado 6 de novembro de 2006
Ultima resposta 7 de nov. de 2006
Respostas 7
Participantes 3