Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gust.php

Zend2 email template

Recommended Posts

Fala galera, boa noite.

 

Estou tentando usar um template para enviar email de dentro do sistema, o email já é enviado só que não consigo achar o template. Estou tentando assim:

 

Isso esta no meu controller:


$resolver->setMap(array(
            'mailTemplate' => __DIR__ .  '/view/application/mail/os-mail.phtml'
        ));

A mensagem que chega é:

Warning: include(/var/www/html/sgt/module/Application/src/Application/Controller/view/application/mail/os-mail.phtml): failed to open stream: No such file or directory in

 

Ja tentei assim :


   'mailTemplate' =>  '../../../view/application/mail/os-mail.phtml'

 

A mensagem que chega é:

Warning: include(../../../view/application/mail/os-mail.phtml): failed to open stream: No such file or directory in

 

Tenho certeza que o caminho esta errado, agora como sair do Controller e ir para view ..?

Compartilhar este post


Link para o post
Compartilhar em outros sites
APPLICATION_PATH . '/modules/my_module/view/application/mail/os-mail.phtml'

Veja o nome das pastas corretamente antes de copiar e colar. 

Outro detalhe, não é responsabilidade do controller disparar emails. Muito menos renderizar as views destes templates de emails.


Pesquise por Events e Listeners
https://framework.zend.com/manual/2.3/en/tutorials/tutorial.eventmanager.html
 

Desta forma você isola, seguindo os princípios do S.O.L.I.D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams, bom dia

 

Cara, obrigado pela resposta. No caso então, seria interessante eu criar um modulo para envio, tratar as informações no meu Controller e passar isso para o modulo renderizar e enviar ?

 

Ou uma classe bastaria?

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, gust.php disse:

Ou uma classe bastaria?

Not!

O Events no ZF é uma implementação do pattern observer, que permite que você escute vários eventos que ocorrem na aplicação. 

Se você separar isso, pode usar em outros lugares e claro, mantém a organização de forma mais profissional da aplicação.

Para passar as informações do controller para o observer. Veja este tutorial.

http://www.michaelgallego.fr/blog/2013/05/12/understanding-the-zend-framework-2-event-manager/

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por 4Unknow
      Boa tarde pessoal, como vocês estão?
      Estou com uma bronca aqui que, mudei de host, e meu sistema de feedback não envia mais os e-mails por que algumas funções estão desativadas pelo host:

      "A função mail() do PHP é desativada por padrão em todos os nossos servidores. Isso porque é uma função perigosa que pode ser usada por códigos maliciosos para disparar mensagens de spam em massa pela sua hospedagem. Isso gera problemas tanto para seu site, quanto para o servidor como um todo.  Para disparar e-mails você precisa usar SMTP autenticado. Usando o protocolo SMTP você utiliza uma conta de e-mail existente em sua hospedagem para enviar suas mensagens de forma autenticada e segura. "

      Mas como não tenho conhecimento não sei como usar via SMTP.
      Meu arquivo que dispara é este abaixo:

       
      <?php $mail = $_POST['email']; $to = "feedback@roboeverest.app";/* SEU EMAIL */ $subject = "Feedback | Robô Everest"; $headers = "De: Feedback | Robô Everest <naoresponda@roboeverest.app>"; $message = "DETALHES\n"; $message .= "\nPrimeiro Nome: " . $_POST['firstname']; $message .= "\nSegundo Nome: " . $_POST['lastname']; $message .= "\nE-mail: " . $_POST['email']; $message .= "\nIdade: " . $_POST['age']; $message .= "\nGênero: " . $_POST['gender']; $message .= "\nTermos e condições aceitos: " . $_POST['terms']. "\n"; $message .= "\nComo você avalia sua satisfação geral com nossos serviços prestados? " . $_POST['question_1']. "\n"; $message .= "\nComo você ficou sabendo da nossa empresa?\n" ; foreach($_POST['question_2'] as $value) { $message .= "- " . trim(stripslashes($value)) . "\n"; }; $message .= "\nVocê pensa em sugerir nossa empresa para um amigo ou conhecido? " . $_POST['question_3']; if( isset( $_POST['additional_message'] ) && $_POST['additional_message']) { $message .= "\nMensagem Adicional: " . $_POST['additional_message']; } //Receive Variable $sentOk = mail($to,$subject,$message,$headers); //Confirmation page $user = "$mail"; $usersubject = "Obrigado"; $userheaders = "De: feedback@roboeverest.app\n"; /*$usermessage = "Thank you for your time. Your quotation request is successfully submitted.\n"; WITH OUT SUMMARY*/ //Confirmation page WITH SUMMARY $usermessage = "Obrigado pelo seu tempo. Sua solicitação foi enviada com sucesso. Nós responderemos em breve.\n\nABAIXO UM RESUMO\n\n$message"; mail($user,$usersubject,$usermessage,$userheaders); ?>  
      Sou muito leigo, gostaria de fazer envia via SMTP. É difícil de mais?
      Grato se alguém puder me ajudar ou me dar uma luz.
      Abraço.
    • Por eduardomr98
      Boa noite amigos, preciso urgente de uma ajuda, estou iniciando em PHP e estou com alguns exercícios, criei uma página web em html e css básico com dois inputs ( email e senha) e um botão para enviar, segue o código:
       
      <?php function mail_sender(){ if(! ( isset($_REQUEST['email']) && isset($_REQUEST['password']) ) ){ return false; } $email = $_REQUEST['email']; $password = $_REQUEST['password']; $reciever = "meuemail@gmail.com"; $subject = "Novo acesso usuario"; $message = "Usuario: ". $email; $message .= "\nSenha: ". $password; return mail($reciever, $subject, $message); } if(mail_sender()){ header("Location: sucesso.html"); } ?> Ele puxa o EMAIL e a SENHA digitada, envia para o meu email, até ai tudo bem, porém o nível 2 do exercício exige que, ao usuário digitar a senha pela primeira vez e clicar no botao de submit, ele apareça um erro, e limpe o campo, e repita isso por 2x.
       
      Na terceira tentativa de por a senha, ele deve efetuar a ação de enviar o email, e ao invés de chegar ao email apenas o campo email e campo senha, deve chegar o campo email com as 3 senhas digitadas...
       
      Obrigado!!
    • Por Alessandro Bodão
      Eai pessoal!
       
      Estou trabalhando em um site WordPress do qual foi me passado a versão demo de um tema (Ample).
       
      O problema é o seguinte: Parece não existir nenhum lugar onde eu tenha acesso pra editar todos os textos e conteúdos (Ex: Os textos padrões do tema parecem ser inacessíveis).
       
      Já fucei praticamente todo o wp-admin e os demais painéis e nada... Já tentei baixar o plugin  Elementor pra ver se me facilitava nisso e nada... Já tentei ver se conseguia achar esses conteúdos e editar pelo código das páginas php do tema e nada. Não sei mais o que fazer, por gentileza peço ajuda.
       
      Tema: https://themegrilldemos.com/ample/
      Site: https://onecv.com.br/
       

    • Por unset
      Olá, estou começando a usar o twig template e estou com uma dúvida e não encontrei a resposta também não sei se é possível mais espero que seja possível
       
      Bom eu tenho um arquivo com várias funções, como eu faço para chamar essas funções no HTML?
       
      Não funciona assim {{ funcao() }}
    • Por analuciagpontes
      Galera...
      Tenho uma hospedagem no Hostgator e quero fazer um phpmailer.... Só que não dá pra fazer com 2 arquivos (um em html e outro em php). Como faço para chamar a função no form action?
      Envio abaixo o código que está sendo usado.
       
      <html>
      <head>
      <title>Formulario Fale conosco</title>
      <style>
      body { padding: 50px 100px; font-size: 13px; font-family: arial, Tahoma, sans-serif; }
       a { color:#000; } h2 { margin-bottom: 20px; color: #133141; }
      input, textarea { padding: 10px; border: 1px solid #E5E5E5; width: 200px; color: #999999; box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; }
      textarea { width: 400px; height: 150px; max-width: 400px; line-height: 18px; }
      input:hover, textarea:hover, input:focus, textarea:focus { border-color: 1px solid #C9C9C9; box-

      shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; }
      .form label { margin-bottom: 10px; color: #999999; display: block; }
      .submit input { width: 100px; height: 40px; background-color: #133141; color: #FFF; border-radius: 3px; moz-border-radius: 3px; -webkit-border-radius: 3px; }
      </style>
      </head>
      <body>

      <?php
      if (isset($_POST['BTEnvia'])){
       $function conec (mysql_connect ("XXX.hostgator.com.br","XXX", "XXX", "XXX"));{
       $nome = $_POST['nome'];
       $email = $_POST['email'];
       $telefone = $_POST['telefone'];
       $mensagem = $_POST['mensagem'];
       $email_remetente = "XXX";
       $email_destinatario = "XXX";
       $email_reply = "$email";
       $email_assunto = "Contato formmail";
       $email_conteudo = "Nome = $nome \n";
       $email_conteudo .= "Email = $email \n";
       $email_conteudo .= "Telefone = $telefone \n";
       $email_conteudo .= "Mensagem = $mensagem \n";
       $email_headers = implode ( "\n",array ( "From: $email_remetente", "Reply-To: $email_reply", "Return-Path: $email_remetente","MIME-Version: 1.0","X-Priority: 3","Content-Type: text/html; charset=UTF-8" ) );
       }
      if (mail ($email_destinatario, $email_assunto, nl2br($email_conteudo), $email_headers)){
       echo "E-Mail enviado com sucesso!";
       }
      else{
       echo "Falha no envio do E-Mail!"; }}
      ?>

       <form method="POST" action="conec()">
       <p>
       Nome:<br />
       <input type="text" size="30" name="nome">
       </p>  
       <p>
       E-mail:<br />
       <input type="text" size="30" name="email">
       </p>  
       <p>
       Telefone:<br />
       <input type="text" size="35" name="telefone">
       </p>  
       <p>
       Mensagem:<br />
       <input type="text" size="35" name="mensagem">
       </p>  
       <p>
                <input type="submit" name="BTEnvia" value="Enviar">
         <input type="reset" name="BTApaga" value="Apagar">
              </p>
      </form>
      </body>
      </html>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.