Jump to content
Rengavitp

Nao consigo enviar email com aplicacao java no glassfish

Recommended Posts

Boa noite pessoal, nao consigo enviar email pelo javamail no glassfish, eu uso a mesma classe em uma aplicação swing e funciona perfeitamente mas na versão web não vai e da erro relacionado a sessão, pelo que vi preciso criar uma sessão no glassfish mas nao faço ideia de como fazer, abaixo segue a classe e o log.

 

public static boolean solicitaCotacao(List<Pedido> pedido, List<Transportador> transp, String email_vendedor) {
    boolean resultado = false;
    try {
        if (pedido.size() > 0) {

            Pedido primeiroPedidoEncontrado = (Pedido) pedido.get(0);
            String origem = "Origem: PORTO BELO - SC";
            String cnpjorigem = "Cnpj: 00.000.000/0000-00";
            String cidadedestino = primeiroPedidoEncontrado.getMunicipio_cliente().trim();
            String uf = primeiroPedidoEncontrado.getUf_cliente();
            String cnpjcliente = primeiroPedidoEncontrado.getCnpj_cpf().trim();
            int tamanho = cnpjcliente.length();
            if (tamanho == 11) {
                Email.format("###.###.###-##", cnpjcliente);
            } else {
                Email.format("##.###.###/####-##", cnpjcliente);
            }
            String nf = String.valueOf(primeiroPedidoEncontrado.getNota_fiscal());
            int volumes = primeiroPedidoEncontrado.getVolumes();
            float peso = primeiroPedidoEncontrado.getPeso();
            float m3 = primeiroPedidoEncontrado.getCub();
            String frete = primeiroPedidoEncontrado.getTipo_frete();
            String l_frete = frete.equals("1") ? "CIF" : "FOB";

            Properties props = new Properties();
            props.put("mail.transport.protocol", "smtp");
            props.put("mail.smtp.host", "smtpout.secureserver.net");
            props.put("mail.smtp.socketFactory.fallback", "false");
            props.put("mail.smtp.starttls.enable", "true");
            props.put("mail.smtp.auth", "true");
            Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("email", "senha");
                }
            });
            session.setDebug(true);

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(email_vendedor.trim()));
            //Destinatário(s) da resposta

            Address[] enderecos;
            enderecos = InternetAddress.parse(email_vendedor.trim());

            message.setReplyTo(enderecos);
            for (Transportador dados : transp) {

            message.addRecipients(Message.RecipientType.TO, InternetAddress.parse(dados.getEmail()));
           }
            message.setSubject("Solicitação de Cotação");
            message.setText("Olá, solicitamos cotação conforme os dados abaixo:\n\n"
                    + origem + "\n"
                    + cnpjorigem + "\n"
                    + "Destino: " + cidadedestino + " - " + uf + "\n"
                    + "Cnpj: " + cnpjcliente + "\n"
                    + "Frete: " + l_frete + "\n"
                    + "Volumes: " + volumes + "\n"
                    + "Peso Total: " + peso + " KG" + "\n"
                    + "Cub: " + m3 + " m3" + "\n\n");
            Transport.send(message);
            System.out.println("Email enviado!");
            resultado = true;

        }
    } catch (MessagingException e) {
        resultado = false;
    }
    return resultado;
}`

e o erro.

java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:333)
at modelo.Email.solicitaCotacao(Email.java:68)
at org.apache.jsp.processa.processa_005fsolicitacao_005fcotacao_jsp._jspService(processa_005fsolicitacao_005fcotacao_jsp.java:69)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)


Informações: DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
Informações: DEBUG SMTP: need username and password for authentication
Informações: DEBUG SMTP: useEhlo true, useAuth true
Informações: DEBUG SMTP: trying to connect to host “smtpout.secureserver.net”, port 25, isSSL false

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ILR master
      Boa tarde pessoal!
       
      A minha dúvida é a seguinte:
      O script abaixo é de um formulário onde o cliente envia suas dúvidas ou sugestões, mas o email está chegando da seguinte forma:
      orcamentos@portasautomaticasandreluis.com.br - Contato pelo site
      e eu quero que chegue assim:
      André Luis Portas de Enrolar - Contato pelo site
       
      ou seja, no lugar do email quero que seja o nome da empresa.
       
      Será que consegui ser claro?
       
      Segue script que estou usando.
       
      Agradeço desde já!
       
      $atitulo= "Contato pelo site";
      $aemail = "orcamentos@portasautomaticasandreluis.com.br";
      $amsg .= "Olá, Administrador!
      O usuário ".$nome." com o email ".$email.", acabou de enviar a seguinte mensagem:
      ".$mensagem."";
      $amsg = utf8_decode($amsg);

          if (PATH_SEPARATOR ==":") {
              $quebra = "\r\n";
          } else {
              $quebra = "\n";
          }
          $headers = "MIME-Version: 1.1".$quebra;
          $headers .= "Content-type: text/plain; charset=iso-8859-1".$quebra;
          $headers .= "From: orcamentos@portasautomaticasandreluis.com.br".$quebra; //E-mail do remetente
          $headers .= "Return-Path: orcamentos@portasautomaticasandreluis.com.br".$quebra; //E-mail do remetente
          mail($aemail, $atitulo, $amsg, $headers, "-r". "orcamentos@portasautomaticasandreluis.com.br");
          }
    • By clayton.lima2020
      Bom dia!
       
      Pessoal estou com um problema estou tentando enviar um e-mail através de um formulário que criei no site da empresa que eu trabalho, porém na hora de enviar está dando erro.
       
      Obs: a hospedagem do site está na Locaweb
       
      Segue abaixo o erro:
       
      Fatal error: Uncaught Error: Call to undefined function eregi() in /home/storage/2/a8/c3/odontosmilesfran1/public_html/class.phpmailer.php:593 Stack trace: #0 /home/storage/2/a8/c3/odontosmilesfran1/public_html/class.phpmailer.php(518): PHPMailer->SmtpConnect() #1 /home/storage/2/a8/c3/odontosmilesfran1/public_html/class.phpmailer.php(410): PHPMailer->SmtpSend('Date: Sat, 5 Ju...', '--b1_b48d510d23...') #2 /home/storage/2/a8/c3/odontosmilesfran1/public_html/envio-franqueador.php(55): PHPMailer->Send() #3 {main} thrown in /home/storage/2/a8/c3/odontosmilesfran1/public_html/class.phpmailer.php on line 593
       
      Segue o código do script de envio:
       

        <? require_once("class.phpmailer.php"); //Nova instância do PHPMailer $mail = new PHPMailer; //Informa que será utilizado o SMTP para envio do e-mail $mail->IsSMTP(); //Informa que a conexão com o SMTP será autênticado $mail->SMTPAuth   = true; //Configura a segurança para SSL $mail->SMTPSecure = "ssl"; $mail->Port       = 465; $mail->Host       = "email-ssl.com.br"; //Usuário para autênticação do SMTP $mail->Username =   "sejaumfranqueado@odontosmilesfranchising.com.br"; //Senha para autênticação do SMTP $mail->Password =   "12345678"; // senha ficticia //Titulo do e-mail que será enviado $mail->Subject  =   "PEDIDO PARA SER UM FRANQUEADOR"; //Preenchimento do campo FROM do e-mail $mail->From = $mail->Username; $mail->FromName = $_POST['nome']; // Nome do remetente //E-mail para a qual o e-mail será enviado $mail->AddAddress("sejaumfranqueado@odontosmilesfranchising.com.br"); //Conteúdo do e-mail //$mail->Body = "Novo contato feito através do site Araújo Imóveis.";      $mail->From     = $_POST['email']; // E-mail do remetente         $mail->Body .= "Modelo de Franquia: ".$_POST['modelo']."<br>";         $mail->Body .= "Nome: ".$_POST['nome']."<br>";     $mail->Body .= "Email: ".$_POST['email']."<br>";      $mail->Body .= "Fone Móvel: ".$_POST['fone']."<br>";     $mail->Body .= "Fone Fixo: ".$_POST['movel']."<br>";     $mail->Body .= "Estado: ".$_POST['estado']."<br>";     $mail->Body .= "Cidade: ".$_POST['cidade']."<br>";           $mail->Body .= "Mensagem: ".nl2br($_POST['mensagem'])."";                        $mail->AltBody = $mail->Body; //Dispara o e-mail $enviado = $mail->Send(); //Imprime sucesso. if($enviado)   echo "<script>alert('Sua mensagem foi enviada com sucesso!')</script>"; echo "<meta http-equiv='refresh' content='2;URL=index.php'>"; ?>  
      Segue o trecho do código do arquivo class.phpmailer.php onde está dando o erro
       

         /* Choose the mailer */     switch($this->Mailer) {       case 'sendmail':         $result = $this->SendmailSend($header, $body);         break;       case 'smtp': [b][color=red]         $result = $this->SmtpSend($header, $body); // nessa linha 410 está dando erro [/color][/b]         break;       case 'mail':         $result = $this->MailSend($header, $body);         break;       default:         $result = $this->MailSend($header, $body);         break;         //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported'));         //$result = false;         //break;     }     return $result;   }   /**   Aqui está outro trecho do código:    /* Retry while there is no connection */     while($index < count($hosts) && $connection == false) {       $hostinfo = array(); [b][color=red]      if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) { // aqui está dando erro linha 593[/color][/b]         $host = $hostinfo[1];         $port = $hostinfo[2];       } else {         $host = $hosts[$index];         $port = $this->Port;       }       $tls = ($this->SMTPSecure == 'tls');       $ssl = ($this->SMTPSecure == 'ssl');       if($this->smtp->Connect(($ssl ? 'ssl://':'').$host, $port, $this->Timeout)) {         $hello = ($this->Helo != '' ? $this->Hello : $this->ServerHostname());         $this->smtp->Hello($hello);         if($tls) {           if(!$this->smtp->StartTLS()) {             $this->SetError($this->Lang("tls"));             $this->smtp->Reset();             $connection = false;           }           //We must resend HELLO after tls negociation           $this->smtp->Hello($hello);         }         $connection = true;         if($this->SMTPAuth) {           if(!$this->smtp->Authenticate($this->Username, $this->Password)) {             $this->SetError($this->Lang('authenticate'));             $this->smtp->Reset();             $connection = false;           }         }       }       $index++;     }     if(!$connection) {       $this->SetError($this->Lang('connect_host'));     }     return $connection;   }    

      Obrigado a todos que puderem ajudar
       
       
    • By alisonalves
      Olá pessoal. Fiz um domínio pela locaweb e estou querendo apontar o serviço de email para a umbler. Fiz a alteração lá no DNS mas não está funcionando. Alguém pode me ajudar?
       
      Coloquei assim "v=spf1 include:_spf.locaweb.com.br include:spf.umbler.com ?all". 
       
      Será que coloquei algo errado?
    • By crisasse
      Olá! Tudo bem?
       
      Estou com uma cliente em que preciso transferir o e-mail dela que está no Wordpress para o Microsoft365 ou para o Wix (ainda não decidimos qual será).
      É possível eu transferir todo o histórico de emails, calendário e etc do Wordpress para algum destes? Qual o passo-a-passo?
      Algo importante que eu deva lembrar ou alertar meu cliente?
       
      Como posso garantir que não iremos perder nada? Medo hehe...
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.