Outra sobre javax.mail

1 resposta
D

Pessoal, já pesquisei no fórum. :puppydogeyes:
Por que eu estava com o problema do "can't relay to [email removido]"... resolvi implementando uma extensão de Athenticator.

Agora vem o (me parece) "famoso" javax.mail.NoSuchProviderException: smtp. Eu estou confuso e não estou conseguindo resolver.

Eis o trecho de código que estou usando:

//...
Properties mailProp = new Properties();
mailProp.put("mail.host", "smtp.base4.com.br");
mailProp.put("mail.transport.protocol", "smtp");
            
Session mailSession = Session.getInstance(p, new SMTPAuthenticator());
MimeMessage msg = new MimeMessage(mailSession);
            
try {
   msg.setFrom(new InternetAddress("[email removido]"));
   msg.setRecipient(Message.RecipientType.TO, 
                                   new InternetAddress(mailToAddr));
            
   msg.setSentDate(new Date());
   msg.setSubject("Resultados...");
   msg.setText(textoResultado, "iso-8859-1");
                  
   Transport.send(msg);
}
catch (AddressException addrex) {}
catch (MessagingException msgex) {}
// ...

E o Authenticator:

class SMTPAuthenticator extends Authenticator {
      
   private PasswordAuthentication __pwdauth;
      
   public SMTPAuthenticator() {
   __pwdauth = new PasswordAuthentication(
                  "<user-name>", "<password>" );
   }
      
   protected PasswordAuthentication getPasswordAuthentication() {
      return __pwdauth;
   }
}

(eu pesquisei sobre esse NoSuchProviderException... me parece que tem uns arquivos dentro mail.jar... mas eu estou totalmente confuso, e se alguém já passou o "apuro", por favor me indique "o caminho das pedras")

Obrigado.

1 Resposta

KIMBA

Tente colocar

java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

Antes de enviar a msg.

Criado 12 de março de 2004
Ultima resposta 25 de out. de 2008
Respostas 1
Participantes 2