Bom gente, olá a todos, estou com uma dúvida básica, mas o código não é básico.
estou querendo enviar um email, através da API do javamail. Quando eu instancio a classe que para enviar o email, o netbeans acusa um erro.
aqui vai o servlet:
[code]public class RegistroServlet extends HttpServlet {
/*vei enviar um email de confirmação de inscrição,
para a pessoa que acabou de efetuar o registro*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
//recupera dos dados do primeiro registro
String email = request.getParameter("email");
String matricula = request.getParameter("matricula");
//gera a senha aleatória
String alePWD = RandomStringUtils.randomAlphanumeric(6);
/*verifica se a pessoa que se registrou,
é um aluno, professor ou um funcionario*/
int tamanhoMatricula = matricula.length();
int outraMatricula = Integer.parseInt(matricula);
//verificador
if ( tamanhoMatricula == 5 )
{
//insere o registro na tabela aluno
AlunoDAO.inserirRegistro(outraMatricula, email, alePWD);
}
else if ( tamanhoMatricula == 8 )
{
String verifMatricula = matricula.substring(0,4);
if( verifMatricula.equals("PROF") )
{
//insere registro na tabela professor
ProfessorDAO.inserirRegistro(outraMatricula, email, alePWD);
}
else if ( verifMatricula.equals("FUNC") )
{
//insere o registro na tabela funcionario
FuncionarioDAO.inserirRegistro(outraMatricula, email, alePWD);
}
}
SendMail sm = new SendMail();
sm.sendMail("sistema.infoteca@gmail.com",email,"Cadastro Efetuado",
"O seu cadastro foi efetuado com sucesso, efetue o login"
+ "no site, para completar seu dados");
} finally {
out.close();
}
}[/code]
(Eu ignorei algumas partes, por julgar não serem interessantes com a minha dúvida)
aqui vai a classe que vai cuidar do meu email:
[code]
public class SendMail {
private String mailSMTPServer;
private String mailSMTPServerPort;
/*quando instanciar um objeto já será atribuido o servidor SMTP do GAMIL
e a porta usada por ele
*/
SendMail()
{//Para o GMAIL
mailSMTPServer = "smtp.gmail.com";
mailSMTPServerPort = "465";
}
/*
caso queira mudar o servidor e a porta, só enviar para o construtor
* os valores cmo string
*/
SendMail(String mailSMTPServer, String mailSMTPServerPort)
{
this.mailSMTPServer = mailSMTPServer;
this.mailSMTPServerPort = mailSMTPServerPort;
}
public void sendMail(String from, String to, String subject, String message)
{
Properties props = new Properties();
//proxy
props.setProperty("proxySet","true");
props.setProperty("socksProxyHost", "192.168.155.1");
props.setProperty("socksProxyPort", "1080");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", mailSMTPServer);
props.put("mai.smtp.auth", "true");
props.put("mail.smtp.user", from);
props.put("mail.debug", "true");
props.put("mail.smtp.port", mailSMTPServerPort);
props.put("mail.smtp.socketFactory.port", mailSMTPServerPort);
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
SimpleAuth auth = null;
auth = new SimpleAuth("sistema.infoteca@gmail.com","sistemaFIRJAN");
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(true);
Message msg = new MimeMessage(session);
try
{
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setFrom(new InternetAddress(from));
msg.setSubject(subject);
msg.setContent(message, "text/html");
}catch (Exception e)
{
System.out.println(">> Erro: Completar Mensagem");
e.printStackTrace();
}
Transport tr;
try
{
tr = session.getTransport("smtp");
tr.connect(mailSMTPServer, "coolrafael625@gmail.com","25QUAdraDO25");
msg.saveChanges();
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}catch( Exception e )
{
System.out.println( ">> Erro: Completar Mensagem" );
e.printStackTrace();
}
}
}[/code]
Ainda tem um detalhe, quando eu use esta classe em um outro projeto, ela funcionou, mas quando eu quis usar ela neste projeto ela não funcionou.
Para facilitar a vida, a parte que não está funcionando(a parte que o netbeans está acusando erro) é a linha 46, mais especificamente a palavra SendMail depois no new.
Desde já muito agradecido