Ir para conteúdo
Fórum Script Brasil
  • 0

Enviar Email Html Por PHP


Robson Gaeski

Pergunta

Ola Senhores,

Estou fazendo um formulário de contato e gostaria que o email fosse em formato HTML

Por exemplo, preciso enviar um link e uma imagem

Segue meu código PHP

// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS
$imagem = $_POST['imagem'];
$site = $_POST['site'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$cidade = $_POST['cidade'];
$textodamensagem = $_POST['textodamensagem'];

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE
$nome_do_site="Seu Site";
$email_para_onde_vai_a_mensagem = "meuemail@gmail.com";
$nome_de_quem_recebe_a_mensagem = "Rob";
$exibir_apos_enviar='enviado.html';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL
$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Contato no Site";

// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)
$configuracao_da_mensagem_original="
                                '<html>
                                <body>
                                <font face=Verdana size=1>
                                
                                //gostaria de pegar o caminho de uma imagem aqui
                                <img src=' $imagem '><br>
                                
                                //um link passando o href por parametro
                                <a id="link" href=' $site ' target="_blank" >Clique aqui</a>
                                
                                <br>                                
                                <b>Contato On-Line</b><br>
                                <br>
                                <b>Nome</b>: ' $nome ' <br>
                                <b>E-mail</b>: ' $email ' <br>
                                <b>Fone</b>: ' $telefone ' <br>
                                <b>Mensagem</b>: ' $textodamensagem ' <br>
                                <br><br>
                                </font>
                                </body>
                                </html>'

";

O email esta enviado mas esta vindo o código HTML por email e não a mensagem certa

Esse é o email que recebo:

<html>

<body>

<font face=Verdana size=1>

<img src=caminho_para_img.jpg><br>

<br>

<b>Contato On-Line</b><br>

<br>

<b>Nome</b>: ' . robteste . ' <br>

<b>E-mail</b>: ' . programador@gmail.com . ' <br>

<b>Fone</b>: ' . rob . ' <br>

<b>Cidade</b>: ' . rob . ' <br>

<b>Mensagem</b>: ' .sdfsdf . ' <br>

<br><br>

</font>

</body>

</html>';

gostaria que viesse o resultado do html e não o codigo.

o que estou fazendo de Errado?

Grato a todos

Editado por Robson Gaeski
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Claro que este é somente um exemplo e você deverá ajustar ao que precisa.

/* Montando a mensagem a ser enviada no corpo do e-mail. */
$mensagemHTML = '
<font face="Verdana, Geneva, sans-serif", size="2">
 <table width="806" border="0" cellpadding="0">
   <tr>
     <td width="186">Contato On-Line</td>
     <td width="614"> </td>
   </tr>
   <tr>
     <td><b>• Nome:</b></td>
     <td>'.$nome.'</td>
   </tr>
   <tr>
     <td><b>• Telefone:</b></td>
     <td>'.$telefone.'</td>
   </tr>
   <tr>
     <td><b>• E-mail:</b></td>
     <td>'.$email.'</td>
   </tr>
   <tr>
     <td><b>• Mensagem:</b></td>
     <td>'.nl2br($textodamensagem).'</td>
   </tr>
 </table></font>';


/* Montando o cabeçalho da mensagem */
$headers = "MIME-Version: 1.1".$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;
// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: ".$Nome."<$email>".$quebra_linha;
$headers .= "Cc: ".$Form_Email_Comcopia.$quebra_linha;
$headers .= "Bcc: ".$Form_Email_Comcopiaoculta.$quebra_linha;
$headers .= "Reply-To: ".$email.$quebra_linha;
$headers .= "Return-Path: ".$email.$quebra_linha;
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)

Att.

Henrique Flausino

Link para o comentário
Compartilhar em outros sites

  • 0

Ola Enrique

usei como me falou mas o email que recebi foi esse:

<font face="Verdana, Geneva, sans-serif", size="2">

<table width="806" border="0" cellpadding="0">

<tr>

<td width="186">Contato On-Line</td>

<td width="614"> </td>

</tr>

<tr>

<td><b>• Nome:</b></td>

<td>a</td>

</tr>

<tr>

<td><b>• Telefone:</b></td>

<td>a</td>

</tr>

<tr>

<td><b>• E-mail:</b></td>

<td>robsong@gmail.com</td>

</tr>

<tr>

<td><b>• Mensagem:</b></td>

<td>a</td>

</tr>

</table></font>

Link para o comentário
Compartilhar em outros sites

  • 0

Por não se tratar de um servidor de qualidade, não desmerecendo você ou a empresa, mas nem toda programação funciona igual em servidores diferentes.

Estou postando o código abaixo para você usar no seu servidor, não edite nada, apenas coloque e teste.

Link para o meu servidor para que você possa testar

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contato</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
&lt;script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
&lt;script src="SpryAssets/SpryValidationTextarea.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationTextarea.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="latest-post" class="wide-post">
<h1 class="title">Contato</h1>
    <div class="entry">
      <form id="form1" name="form1" method="post" action="form.php">
        <table width="100%" border="0" class="links">
  <tr>
    <th width="17%" scope="col">* Nome:</th>
    <th width="83%" align="left"><span id="sprytextfield1">
      <input name="nome" type="text" id="nome" size="50" />
      <span class="textfieldRequiredMsg">Informe seu Nome.</span></span></th>
  </tr>
  <tr>
    <th scope="row">* E-mail:</th>
    <td><span id="sprytextfield2">
      <input name="Form_Email_Remetente" type="text" id="Form_Email_Remetente" size="50" />
      <span class="textfieldRequiredMsg">Informe seu e-mail.</span><span class="textfieldInvalidFormatMsg">Formato inválido.</span></span></td>
  </tr>
  <tr>
    <th scope="row">Telefone:</th>
    <td><input name="fone" type="text" id="fone" size="50" /></td>
  </tr>
  <tr>
    <th scope="row">CEP:</th>
    <td><input type="text" name="CEP" id="CEP" /></td>
  </tr>
  <tr>
    <th scope="row">Descrição do Contato:</th>
    <td><span id="sprytextarea1">
      <textarea name="Mensagem" id="Mensagem" cols="48" rows="7"></textarea>
      <br /><span class="textareaRequiredMsg">Favor deixar a descrição do contato.</span></span></td>
  </tr>
  <tr>
    <th scope="row"> </th>
    <td>
    <input type="submit" name="Enviar" id="Enviar" value="Enviar" />
    <input type="reset" name="Limpar" id="Limpar" value="Limpar" />
    <input name="Form_Email_Destinatario" type="hidden" id="Form_Email_Destinatario" value="henrique.flausino@gmail.com" style="visibility:hidden"/>
    <input name="Form_Email_Comcopia" type="hidden" id="Form_Email_Comcopia" style="visibility:hidden" value="robsong@gmail.com"/>
    <input name="Form_Email_Comcopiaoculta" type="hidden" id="Form_Email_Comcopiaoculta" value="" style="visibility:hidden"/>
    <input name="Assunto" type="hidden" id="Assunto" value="Form de Contato Online" style="visibility:hidden"/>
    <input name="Form_Email_Titulo" type="hidden" id="Form_Email_Titulo" value="Form de Contato Online" style="visibility:hidden"/>
    <input type="hidden" name="IP_do_Visitante" id="IP_do_Visitante" value="<?php echo "$_SERVER[REMOTE_ADDR]";?>" /></td>
  </tr>
</table>
      </form>
&lt;script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["change"]});
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "email", {validateOn:["blur"]});
var sprytextarea1 = new Spry.Widget.ValidationTextarea("sprytextarea1", {validateOn:["blur"]});
//-->
</script>
</body>
</html>
<?php
/* Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. Não alterar */
if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux
elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows
else die("Este script não esta preparado para funcionar com o sistema operacional de seu servidor");

// Passando os dados obtidos pelo formulário para as variáveis abaixo
$IP        = $_POST['IP_do_Visitante'];
$Nome     = $_POST['nome'];
$Fone     = $_POST['fone'];
$CEP     = $_POST['CEP'];
$Form_Email_Remetente    = $_POST['Form_Email_Remetente'];
$Form_Email_Destinatario = $_POST['Form_Email_Destinatario'];
$Form_Email_Comcopia          = $_POST['Form_Email_Comcopia'];
$Form_Email_Comcopiaoculta    = $_POST['Form_Email_Comcopiaoculta'];
$Titulo            = $_POST['Form_Email_Titulo'];
$Assunto           = $_POST['Assunto'];
$Comentarios          = $_POST['Mensagem'];

/* Montando a mensagem a ser enviada no corpo do e-mail. */
$mensagemHTML = '
<font face="Verdana, Geneva, sans-serif", size="2">
 <table width="806" border="0" cellpadding="0">
   <tr>
     <td width="186"><b>• IP do Visitante:</b></td>
     <td width="614">'.$IP.'</td>
   </tr>
   <tr>
     <td><b>• Nome:</b></td>
     <td>'.$Nome.'</td>
   </tr>
   <tr>
     <td><b>• Telefone:</b></td>
     <td>'.$Fone.'</td>
   </tr>
   <tr>
     <td><b>• CEP:</b></td>
     <td>'.$CEP.'</td>
   </tr>
   <tr>
     <td><b>• Assunto:</b></td>
     <td>'.$Assunto .'</td>
   </tr>
   <tr>
     <td><b>• Mensagem:</b></td>
     <td>'.nl2br($Comentarios).'</td>
   </tr>
 </table>
</font>';


/* Montando o cabeçalho da mensagem */
$headers = "MIME-Version: 1.1".$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;
// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: ".$Nome."<$Form_Email_Remetente>".$quebra_linha;
$headers .= "Cc: ".$Form_Email_Comcopia.$quebra_linha;
$headers .= "Bcc: ".$Form_Email_Comcopiaoculta.$quebra_linha;
$headers .= "Reply-To: ".$Form_Email_Remetente.$quebra_linha;
$headers .= "Return-Path: ".$Form_Email_Remetente.$quebra_linha;
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)

/* Enviando a mensagem */
//Verificando qual é o MTA que está instalado no servidor e efetuamos o ajuste colocando o paramentro -r caso seja Postfix

    mail($Form_Email_Destinatario, $Titulo, $mensagemHTML, $headers );

echo "<meta http-equiv='refresh' content='1; url=contato.php'>"

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Henrique

Funcionou perfeitamente.

mas porque sera o meu script não funcionou o html??

não tem nada de mais

segue o script completo

<?php

$date = date("d/m/Y h:i");

// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS

$nome = $_POST['nome'];

$email = $_POST['email'];

$telefone = $_POST['telefone'];

$cidade = $_POST['cidade'];

$textodamensagem = $_POST['textodamensagem'];

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE

$nome_do_site="Seu Site";

$email_para_onde_vai_a_mensagem = "programadorsesmo3@gmail.com";

$nome_de_quem_recebe_a_mensagem = "Rob";

$exibir_apos_enviar='enviado.html';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL

$cabecalho_da_mensagem_original="From: $name <$email>\n";

$assunto_da_mensagem_original="Contato no Site";

// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)

$configuracao_da_mensagem_original="

<html>

<body>

<font face=Verdana size=1>

<br>

<b>Contato On-Line</b><br>

<br>

<b>Nome</b>: ' $nome ' <br>

<b>E-mail</b>: ' $email ' <br>

<b>Fone</b>: ' $telefone ' <br>

<b>Mensagem</b>: ' $textodamensagem ' <br>

<br><br>

</font>

</body>

</html>";

$headers = "Content-type: text/html; charset=iso-8859-1rn";

//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA

// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO

// "Re: $assunto"

$assunto_da_mensagem_de_resposta = "Confirmação";

$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n";

$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\n$nome_do_site\n\nEnviado em: $date";

// ****** IMPORTANTE ********

// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE

// ****** IMPORTANTE ********

//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO

//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME

//'assunto' NO FORMULARIO DE ENVIO

$assunto_digitado_pelo_usuario="s";

//ENVIO DA MENSAGEM ORIGINAL

$headers = "$cabecalho_da_mensagem_original";

if($assunto_digitado_pelo_usuario=="n"){

$assunto = "$assunto_da_mensagem_original";

}

$seuemail = "$email_para_onde_vai_a_mensagem";

$mensagem = "$configuracao_da_mensagem_original";

mail($seuemail,$assunto,$mensagem,$headers);

//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA

$headers = "$cabecalho_da_mensagem_de_resposta";

if($assunto_digitado_pelo_usuario=="n"){

$assunto = "$assunto_da_mensagem_de_resposta";

}else{

$assunto = "Re: $assunto";

}

$mensagem = "$configuracao_da_mensagem_de_resposta";

mail($email,$assunto,$mensagem,$headers);

echo "<script>window.location='$exibir_apos_enviar'</script>";

?>

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado Henrique

Funcionou perfeitamente.

mas porque sera o meu script não funcionou o html??

não tem nada de mais

segue o script completo

<?php

$date = date("d/m/Y h:i");

// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS

$nome = $_POST['nome'];

$email = $_POST['email'];

$telefone = $_POST['telefone'];

$cidade = $_POST['cidade'];

$textodamensagem = $_POST['textodamensagem'];

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE

$nome_do_site="Seu Site";

$email_para_onde_vai_a_mensagem = "programadorsesmo3@gmail.com";

$nome_de_quem_recebe_a_mensagem = "Rob";

$exibir_apos_enviar='enviado.html';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL

$cabecalho_da_mensagem_original="From: $name <$email>\n";

$assunto_da_mensagem_original="Contato no Site";

// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)

$configuracao_da_mensagem_original="

<html>

<body>

<font face=Verdana size=1>

<br>

<b>Contato On-Line</b><br>

<br>

<b>Nome</b>: ' $nome ' <br>

<b>E-mail</b>: ' $email ' <br>

<b>Fone</b>: ' $telefone ' <br>

<b>Mensagem</b>: ' $textodamensagem ' <br>

<br><br>

</font>

</body>

</html>";

$headers = "Content-type: text/html; charset=iso-8859-1rn";

//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA

// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO

// "Re: $assunto"

$assunto_da_mensagem_de_resposta = "Confirmação";

$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n";

$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\n$nome_do_site\n\nEnviado em: $date";

// ****** IMPORTANTE ********

// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE

// ****** IMPORTANTE ********

//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO

//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME

//'assunto' NO FORMULARIO DE ENVIO

$assunto_digitado_pelo_usuario="s";

//ENVIO DA MENSAGEM ORIGINAL

$headers = "$cabecalho_da_mensagem_original";

if($assunto_digitado_pelo_usuario=="n"){

$assunto = "$assunto_da_mensagem_original";

}

$seuemail = "$email_para_onde_vai_a_mensagem";

$mensagem = "$configuracao_da_mensagem_original";

mail($seuemail,$assunto,$mensagem,$headers);

//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA

$headers = "$cabecalho_da_mensagem_de_resposta";

if($assunto_digitado_pelo_usuario=="n"){

$assunto = "$assunto_da_mensagem_de_resposta";

}else{

$assunto = "Re: $assunto";

}

$mensagem = "$configuracao_da_mensagem_de_resposta";

mail($email,$assunto,$mensagem,$headers);

echo "&lt;script>window.location='$exibir_apos_enviar'</script>";

?>

Vamos por parte, $headers .= "Content-type: text/html; charset=iso-8859-1" é o correto e no seu código está $headers = "Content-type: text/html; charset=iso-8859-1rn";

Sua página (form) deve conter o mesmo formato "iso-8859-1"

Não olhei todo o seu código mas o que mais me chamou a atenção foi isso.

Att.

Henrique Flausino

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...