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 Sapinn
      Salve! Tô tentando enviar emails para recuperar a senha no meu site estou usando uma função antiga mas não funciona, vejam:
       
      <?php     //permitem erros de relatório para que você possa ver se o script tem algum erro e não está sendo executado.     ini_set('display_errors', 1);     error_reporting(E_ALL);          //$ From – Endereço do remetente do e-mail.     $from = "testing @ yourdomain";     //O endereço de e-mail do destinatário.     $to = "recipientemailaddress";     //O assunto do e-mail.     $subject = "Verificando o correio do PHP";     //O conteúdo da mensagem de e-mail.     $message = "O correio do PHP funciona bem";     //Cada email tem cabeçalhos. Eles contêm informações vitais, tais como De endereço de e-mail.     $headers = "De:". $from;     //Esta é uma função PHP que executa o e-mail. Você não deve mudar nada nesta linha.     if(mail($to, $subject, $message, $headers)){ echo "Email enviado com sucesso!!"; }else{ echo "Erro ao enviar"; }   ?>     Alguém tem um codigo ou sabe como fazer? Eu fiz pesquisas na internet mas em nenhuma obtive exito. Obs: Meu site já esta hospedado não é localhost.
    • By Sapinn
      Save! Estou desenvolvendo um sistema e resolvi colocar um parte para o "esqueci minha senha" para os usuários recuperarem e não precisarem refazer um cadastro o problema é que eu não consigo obter exito. Usei o PHPMailes mas ele não funciona Gostaria de saber se vocês conhecem algum artigo, livro ou vídeo-aula que explica como fazer isso por que as pesquisas que eu fiz na net não me retornaram resultados esperados. Desde já agradeço
    • By Webster Moitinho
      Estou desenvolvendo localmente em PHP5 mas hospedando na Web com PHP7. Fiz meu formulário, minhas regras de validação de cada campo, e para validar o email tinha usado o eregi() que está obsoleto e foi removido no PHP7. Agora não consigo fazer a validação. Estou tentando cpm preg_match(). Meu código antes estava assim:
      if (!eregi("^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$", $valor)) { echo "Preencha com um email válido"; } reescrevi para ele ficar assim
      if(preg_match("/^([[:alnum:]_.-]){3,}([[:lower:][:digit:]_.-]{3,})(.[[:lower:]]{2,3})(.[[:lower:]]{2})?$/", $valor)) { echo "Preencha com um email válido"; } mas não está dando certo...
    • By vinihhylian0103
      Eu estou usando esse código: 
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>Enviar e-mail com anexo</title> </head> <body> <form id="form1" name="form1" method="post" action="?acao=enviar" enctype="multipart/form-data"> <table width="500" border="0" align="center" cellpadding="0" cellspacing="2"> <tr> <td align="right">Nome:</td> <td><input type="text" name="nome" id="nome" /></td> </tr> <tr> <td align="right">Assunto:</td> <td><input type="text" name="assunto" id="assunto" /></td> </tr> <tr> <td align="right">Mensagem:</td> <td><textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea></td> </tr> <tr> <td align="right">Anexo:</td> <td><input type="file" id="arquivo" name="arquivo" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Enviar" /></td> </tr> </table> </form> <?php if($_GET['acao'] == 'enviar'){ $nome = $_POST['nome']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; $arquivo = $_FILES["arquivo"]; $corpoMSG = "<strong>Nome:</strong> $nome<br> <strong>Mensagem:</strong> $mensagem"; // chamada da classe require_once('class.phpmailer.php'); // instanciando a classe $mail = new PHPMailer(); // email do remetente $mail->SetFrom('remetente@dominio.com.br', 'remetente'); // email do destinatario $address = "destinatario@dominio.com.br"; $mail->AddAddress($address, "destinatario"); // assunto da mensagem $mail->Subject = $assunto; // corpo da mensagem $mail->MsgHTML($corpoMSG); // anexar arquivo $mail->AddAttachment($arquivo['tmp_name'], $arquivo['name'] ); if(!$mail->Send()) { echo "Erro: " . $mail->ErrorInfo; } else { echo "Mensagem enviada com sucesso!"; } } ?> </body> </html> E estou recebendo o seguinte erro:
       
      ( ! ) Notice: Undefined index: acao in C:\wamp\www\EMAILL\email.php on line 33 Call Stack # Time Memory Function Location 1 0.0020 386856 {main}( ) ...\email.php:0  
      Alguém poderia me ajudar por favor!
    • By vinihhylian0103
      Esse é o código que estou tentando usar:
       
      <?php $nome = $_POST['nome']; $arquivo = $_FILES["arquivo"]; $assunto = $_POST['assunto']; // Para quem vai ser enviado o email $para = $_POST['email']; $boundary = "XYZ-".date("dmYis")."-ZYX"; $fp = fopen($arquivo["tmp_name"], "rb"); // abre o arquivo enviado $anexo = fread($fp, filesize($arquivo["tmp_name"])); // calcula o tamanho $anexo = base64_encode($anexo); // codifica o anexo em base 64 fclose($fp); // fecha o arquivo // cabeçalho do email $headers = "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed; "; $headers .= "boundary='$boundary'\r\n"; $headers .= "$boundary\n"; // email $mensagem = "--$boundary\n"; $mensagem .= "Content-Type: text/html; charset='utf-8'\n"; $mensagem .= "<strong>Nome: </strong> $nome \r\n"; $mensagem .= "--$boundary \n"; // anexo $mensagem .= "Content-Transfer-Encoding: base64 \n"; $mensagem .= "Content-Disposition: attachment; filename=\"".$arquivo['name']."\" \r\n"; $mensagem .= "$anexo \n"; $mensagem .= "--$boundary \n"; // enviar o email mail($para, $assunto, $mensagem, $headers); ?> e estou tendo o seguinte erro:
      ( ! ) Warning: mail(): Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\email\email.php on line 28 Call Stack # Time Memory Function Location 1 0.0010 385096 {main}( ) ...\email.php:0 2 0.0430 386472 mail ( ) ...\email.php:28
×

Important Information

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