Robson Gaeski Posted July 29, 2011 Report Share Posted July 29, 2011 (edited) Ola Senhores, Estou fazendo um formulário de contato e gostaria que o email fosse em formato HTMLPor exemplo, preciso enviar um link e uma imagemSegue 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 certaEsse é 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 Edited July 29, 2011 by Robson Gaeski Quote Link to comment Share on other sites More sharing options...
0 Henrique Flausino Posted July 29, 2011 Report Share Posted July 29, 2011 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 Quote Link to comment Share on other sites More sharing options...
0 Robson Gaeski Posted July 29, 2011 Author Report Share Posted July 29, 2011 Ola Enriqueusei 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> Quote Link to comment Share on other sites More sharing options...
0 Henrique Flausino Posted July 29, 2011 Report Share Posted July 29, 2011 Qual servidor de Hospedagem você está usando?Está olhando a mensagem recebida no Webmail ou no outlook? Quote Link to comment Share on other sites More sharing options...
0 Robson Gaeski Posted July 29, 2011 Author Report Share Posted July 29, 2011 OlaEstou usando o 000webhostpode ver minha aplicação nesse link http://rob.net76.net/teste/contato.htmlestou verificando mensagem direto pela pagina do gmail Quote Link to comment Share on other sites More sharing options...
0 Henrique Flausino Posted July 29, 2011 Report Share Posted July 29, 2011 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="" /> <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script> <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> <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'>" ?> Quote Link to comment Share on other sites More sharing options...
0 Robson Gaeski Posted July 29, 2011 Author Report Share Posted July 29, 2011 Obrigado HenriqueFuncionou perfeitamente.mas porque sera o meu script não funcionou o html??não tem nada de maissegue 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>";?> Quote Link to comment Share on other sites More sharing options...
0 Henrique Flausino Posted July 29, 2011 Report Share Posted July 29, 2011 Obrigado HenriqueFuncionou perfeitamente.mas porque sera o meu script não funcionou o html??não tem nada de maissegue 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>";?>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 Quote Link to comment Share on other sites More sharing options...
Question
Robson Gaeski
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
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
Edited by Robson GaeskiLink to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.