Bom gente, não estou conseguindo instanciar a uma classe chamada SendMail, sendo que o código dela eu peguei aqui mesmo no fórum.
Aqui está o servlet que estou tentando instanciar a SendMAil nele:
[code]package controller;
import model.SendMail;
import model.dao.AlunoDAO;
import model.dao.FuncionarioDAO;
import model.dao.ProfessorDAO;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;
import org.apache.commons.lang.RandomStringUtils;
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);
String matricula1 = matricula.substring(0,3);
if ( matricula1.equals( "PRO" ) )
{
ProfessorDAO.inserirRegistro(matricula, email, alePWD);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso! "
+ "Verifique o email para completar o seu cadastro");
response.sendRedirect("index.jsp");
}
else if ( matricula1.equals( "ALU" ) )
{
//faz o primeiro registro
AlunoDAO.inserirRegistro(matricula, email, alePWD);
SendMail sm = new SendMail();
//envia o email
//SendMail sm = new SendMail();
//sm.sendMail("sistema.infoteca@gmail.com", email, "Registro efetuado com sucesso", "sua senha aleatória é:"+ alePWD);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso! "
+ "Verifique o email para completar o seu cadastro");
response.sendRedirect("index.jsp");
}
else if ( matricula1.equals( "FUN" ) )
{
FuncionarioDAO.inserirRegistro(matricula, email, alePWD);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso! "
+ "Verifique o email para completar o seu cadastro");
response.sendRedirect("index.jsp");
}
else{
JOptionPane.showMessageDialog(null, "Insira uma matrícula válida. Consulte a sua secretaria para obte-la.");
response.sendRedirect("index.jsp");
}
//SendMail sm = new SendMail();
/*sm.sendMail("sistema.infoteta@gmail.com", "coolrafael625@gmail.com", "Complete o seu cadastro",
"Email cadastrado com sucesso<br>"
+ "Complete o seu cadastro por favor");*/
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
[/code]
e aqui vai a classe SendMail:
[code]package model;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
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, "sistema.firjan@gmail.com","sistemaFIRJAN");
msg.saveChanges();
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}catch( Exception e )
{
System.out.println( ">> Erro: Completar Mensagem" );
e.printStackTrace();
}
}
}
[/code]
Será que alguém do fórum poderia me dar uma mão d
PS: A API javamail está devidamente importada no projeto
PS: Tanto a classe SendMail quanto uma outr classe que a SendMail faz “referência”, estão digitadas corretamente.
braços a todos!