How to send a full PHP page by email ?

Asked

Viewed 887 times

0

I’m having trouble sending an email template. I have the following page :

<?php session_start();  ?>

Contact - Piscouachou Email sent successfully !

    <section id="conteudo">
        <p>
            Obrigado por utilizar o contato Piscou achou, o estabelecimento já ira entrar em contato com você.</br></br>

            Caso queira um contato mais direto visite a pagina www.piscouachou.com.br
            e clique em ver telefone na pagina do estabelecimento.</br></br>

            Estabelecimento: <?php echo $_SESSION['nomeE']; ?></br>
            ID: Estabelecimento: <?php echo $_SESSION['idE']; ?>
        </p>
    </section>

    <section id="imagem">
        <img src="img/separador.png" alt="">
    </section>

    <div id="public">
    <section id="estabelecimento">
        <h2>· Estabelecimento ·</h2>
        <h4>Ainda não é assinante?</h4>
        <p>
            Entre em contato:</br>

            email: [email protected]</br>
            telefone: 11 4107-5077
            </br>
            </br>
        </p>
        <a href="http://www.piscouachou.com.br/contato.php" class="css_btn_class">Piscou Achou</a>
       </section>

    <section id="grupoemais">
        <h2>· Grupo Emais·</h2>
        <h4>Conhece nossos serviços?</h4>
        <p>
            Grupo Emais é composto por 4 empresas que oferecem suporte às corporações
            em tudo o que diz respeito à comunicação.
            </br>
            </br>
        </p>
        <a href="http://www.grupoemais.com.br/" class="css_btn_class2">Grupo Emais</a>
    </section>
    </div>
</div>

I was trying to include this page on a page with the values of $_SESSION updated, but when I send the email the images do not appear and the values of SESSION do not work.

I am using PHPMAILER.

$Vdata = file_get_contents('EmailEmais');
$mail -> body = $Vdata;

2 answers

1


Unable to send a PHP page by email, you can send the generated HTML from it.

to send HTML you do :

include_once("geradorHtml.php");

$geradorDeHtml = new Gerador();

$html = $geradorDeHtml->geraHtml($_SESSION['nomeE'],$_SESSION['idE']);
$mail->MsgHTML($html);
$mail->IsHtml(true);

And in the document geradorHtml.php :

 class Gerador {
    public function geraHtml($nome,$id){


    $html = ' <section id="conteudo">
        <p>
            Obrigado por utilizar o contato Piscou achou, o estabelecimento já ira entrar em contato com você.</br></br>

            Caso queira um contato mais direto visite a pagina www.piscouachou.com.br
            e clique em ver telefone na pagina do estabelecimento.</br></br>

            Estabelecimento:'.$nome.'</br>
            ID: Estabelecimento:'.$id.'
        </p>
    </section>

    <section id="imagem">
        <img src="img/separador.png" alt="">
    </section>

    <div id="public">
    <section id="estabelecimento">
        <h2>· Estabelecimento ·</h2>
        <h4>Ainda não é assinante?</h4>
        <p>
            Entre em contato:</br>

            email: [email protected]</br>
            telefone: 11 4107-5077
            </br>
            </br>
        </p>
        <a href="http://www.piscouachou.com.br/contato.php" class="css_btn_class">Piscou Achou</a>
       </section>

    <section id="grupoemais">
        <h2>· Grupo Emais·</h2>
        <h4>Conhece nossos serviços?</h4>
        <p>
            Grupo Emais é composto por 4 empresas que oferecem suporte às corporações
            em tudo o que diz respeito à comunicação.
            </br>
            </br>
        </p>
        <a href="http://www.grupoemais.com.br/" class="css_btn_class2">Grupo Emais</a>
    </section>
    </div>
</div>';


    return $html;

    }


    }
  • I would put Emailemais.php in the $name ??

  • No, within that function geraHtml(), in the variable $html you put your HTML text, and pass as a parameter to the function what will replace the variables in your HTML, for example : $_SESSION['nomeE'] , this way you don’t get so dependent on Ssion

  • @Kauealves Editei

  • Thank you very much I got here !!

0

Provavelemtne your problem is in using SESSION. It should return the value of SESSION null during sending.

Or you would use data generated dynamically by queries. Which would be a little expensive to send email, or you can try to generate static HTML with a scritp that preprocesses these pages you need to send by inserting the variables.

How to place variables in email with phpmailer?

My suggestion is that you generate these pages, which you will use in the email, with a preprocessor, to generate this static page, in HTML itself. So your emails will go correctly.

Or, finally, you can try to generate dynamic html with your email submission script. Create a class just to generate html, with strings. And pass that variable as your email body.

http://recursosdophp.blogspot.com.br/2011/07/criar-um-arquivo-html-com-php.html

Browser other questions tagged

You are not signed in. Login or sign up in order to post.