Ola pessoal estou fazendo um trecho de um programa para envio de email para servidores que necessitam de autenticacao, no entanto quando o programa é executado a seguinte mensagem de erro e exiba:
Exception in thread “main” javax.mail.NoSuchProviderException: No provider for smtp.oi.com.br
segue abaixo o codigo
public class SendEmail {
public void sendSimpleMail(String mailServer, String subject, String to,
String from, String mensagem, String user, String senha)
throws AddressException, MessagingException {
Properties props = System.getProperties();
props.put(“mail.smtp.host”, mailServer);
SMTPAuthenticator auth = new SMTPAuthenticator(user, senha);
// esta linha informará à sessão que o seu servidor requer autenticação
props.put(“mail.smtp.auth”, “true”);
props.put("mail.smtp.port", new Integer(587));
// cria uma nova sessão passando as propriedades setadas
Session session = Session.getDefaultInstance(props, auth);
//As duas linhas seguintes de código, colocam no
//formato de endereços,
//supostamente válidos, de email os dados
//passados pelos parâmetros to e from.
InternetAddress destinatario = new InternetAddress(to);
InternetAddress remetente = new InternetAddress(from);
//constrói a mensagem
Message message = new MimeMessage(session);
//Definição de quem está enviando o email
message.setFrom(remetente);
//define o(s) destinatário(s) e qual o tipo do
//destinatário.
//os possíveis tipos de destinatário: TO, CC, BCC
message.setRecipient(Message.RecipientType.TO, destinatario);
//definição do assunto do email
message.setSubject(subject);
//definição do conteúdo da mesnagem e do
//tipo da mensagem
message.setContent(mensagem.toString(), "text/html");
Transport transport = session.getTransport(mailServer);
// faz a conexao com o host
transport.connect(mailServer, 587 , user, senha);
// salva as mudanças na mensagem
message.saveChanges();
transport.sendMessage(message, message.getAllRecipients());
// fecha a conexao com o host
transport.close();
}
public static void main(String[] args)
throws AddressException, MessagingException {
SendEmail email = new SendEmail();
email.sendSimpleMail(“smtp.oi.com.br”, “Olá!”, “<destinatario>@oi.com.br”,
"<remetente>@oi.com.br", “Oi, tudo bem??”, “<user>”, “<senha>”);
}
class SMTPAuthenticator extends Authenticator {
private String username;
private String password;
/**
* @param user
* @param pass
*/
public SMTPAuthenticator(String user, String pass) {
this.username = user;
this.password = pass;
}
/**
*
* @return
*
* @see javax.mail.Authenticator#getPasswordAuthentication()
*/
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
}