Erro em instanciação

1 resposta
mirrah

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:
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("[email removido]",email,"Cadastro Efetuado",
                    "O seu cadastro foi efetuado com sucesso, efetue o login"
                    + "no site, para completar seu dados");
            
        } finally { 
            out.close();
        }
    }
(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:
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("[email removido]","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, "[email removido]","25QUAdraDO25");
            msg.saveChanges();
            tr.sendMessage(msg, msg.getAllRecipients());
            tr.close();
        }catch( Exception e )
        {
            System.out.println( ">> Erro: Completar Mensagem" );
            e.printStackTrace();
        }


    }

}

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 :D

1 Resposta

worldsoft

Cara posta a mensagem de erro que está aparecendo!

Criado 30 de junho de 2011
Ultima resposta 30 de jun. de 2011
Respostas 1
Participantes 2