Ir para conteúdo

POWERED BY:

Arquivado

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

Leonardo Fuzeto

[Resolvido] Array em um corpo de e-mail, é possível?

Recommended Posts

Pessoal, estou fazendo um envio de e-mail automático pelo meu sistema onde dentro do corpo ele exibe variáveis com NOME DO CLIENTE e NOME DO ANIMAL, e tem um FOREACH que exibe as VACINAS que esse ANIMAL tem que tomar...

 

Só que está dando um erro na linha do FOREACH, não estou conseguindo visualizar erros, alguém poderia me ajudar? Não sei se permite fazer um FOREACH no corpo do e-mail, mais a princípio eu acho que dá certo...

 

Meu código.

 

$message  = '
<html>
   <body style="text-transform:uppercase;">
       <p>'.$CABECALHO_DATA.'</p>

       <p>OLÁ, <b>".$nomeCliente."</b> !</p>
       <p>NO INTUITO DE PRESERVAR A SAÚDE DO(A) <b>".$nomeAnimal."</b>, TOMAMOS A LIBERDADE DE ENVIAR-LHE ESTE EMAIL, INFORMANDO O VENCIMENTO DAS SEGUINTES VACINAS:</p>

       <p></p>

       <p>CONTAMOS COM SUA ATENÇAO PARA A PREVENÇAO DAS DOENÇAS COBERTAS PELA(S) VACINAS(S) SUPRA CITADA(S), E CONSEQUENTE MANUTENÇAO DA SAÚDE DE SEU ANIMALZINHO, AGUARDAMOS  SUA VISITA PARA VACINAÇAO.</p>


       //O ERRO ESTÁ NESSA LINHA
       'foreach($array30DiasDepoisVacinas AS $indice=>$var){
           echo $var["DATA_VACINA"]." - ".$var["NOME_VACINA"]." - ".$var["DESCRICAO_VACINA"]."<br>";
       }'


   </body>
</html>';

$headers  = sprintf( 'Date: %s%s', date( "D, d M Y H:i:s O" ), PHP_EOL );
$headers .= sprintf( 'Return-Path: %s%s', $from, PHP_EOL );
$headers .= sprintf( 'To: %s%s', $to, PHP_EOL );
$headers .= sprintf( 'Cc: %s%s', $cc, PHP_EOL );
$headers .= sprintf( 'Bcc: %s%s', $bcc, PHP_EOL );
$headers .= sprintf( 'From: %s%s', $from, PHP_EOL );
$headers .= sprintf( 'Reply-To: %s%s', $from, PHP_EOL );
$headers .= sprintf( 'Message-ID: <%s@%s>%s', md5( uniqid( rand( ), true ) ), $_SERVER[ 'HTTP_HOST' ], PHP_EOL );
$headers .= sprintf( 'X-Priority: %d%s', 3, PHP_EOL );
$headers .= sprintf( 'X-Mailer: PHP/%s%s', phpversion( ), PHP_EOL );
$headers .= sprintf( 'Disposition-Notification-To: %s%s', $from, PHP_EOL );
$headers .= sprintf( 'MIME-Version: 1.0%s', PHP_EOL );
$headers .= sprintf( 'Content-Transfer-Encoding: 8bit%s', PHP_EOL );
$headers .= sprintf( 'Content-Type: text/html; charset="iso-8859-1"%s', PHP_EOL );

mail( null, $subject, $message, $headers );
';

 

Lembrando que SEM o FOREACH dá certo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concatena a variável.

 

Siga esta linha de pensamento.

<?php

$message = 'Begin >>> ';

$array = array( 'name' => 'Carlos Coelho', 'message' => 'Hi!' );

foreach( $array as $key => $value )
{
   $message .= sprintf( '%s => %s, ', $key, $value );
}

$message .= ' <<< End.';

var_dump( $message );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahh mlk, consegui aqui pessoal.

 

Resumindo: o correto é fazer o FOREACH fora e dentro dele eu coloco a varivel $message (que é a variavel do corpo do e-mail) recebendo as variáveis do loop.

 

Fica assim então:

 

$message  = '
<html>
   <body style="text-transform:uppercase;">
       <p>'.$CABECALHO_DATA.'</p>

       <p>OLÁ, <b>'.$nomeCliente.'</b> !</p>
       <p>NO INTUITO DE PRESERVAR A SAÚDE DO(A) <b>'.$nomeAnimal.'</b>, TOMAMOS A LIBERDADE DE ENVIAR-LHE ESTE EMAIL, INFORMANDO O VENCIMENTO DAS SEGUINTES VACINAS:</p>

       <p></p>

       <p>CONTAMOS COM SUA ATENÇAO PARA A PREVENÇAO DAS DOENÇAS COBERTAS PELA(S) VACINAS(S) SUPRA CITADA(S), E CONSEQUENTE MANUTENÇAO DA SAÚDE DE SEU ANIMALZINHO, AGUARDAMOS  SUA VISITA PARA VACINAÇAO.</p>



';

foreach($array30DiasDepoisVacinas AS $indice=>$var){
   $message .= $var["DATA_VACINA"]." - ".$var["NOME_VACINA"]." - ".$var["DESCRICAO_VACINA"]."<br>";
}

$message .= 'CONTINUAÇÃO DA MENSAGEM';

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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